摘要: Dagger 和 Koin 无疑是 Android 中最流行的两个依赖注入框架。这两个库具有相同的用途,而且看起来非常相似,但它们在底层的工作方式却非常不同。 那么 Hilt 是什么呢?Hilt 是一个内部使用 Dagger 的库,只是简化了它的用法,因此我在这里所说的有关 Dagger 的内容也适 阅读全文
posted @ 2021-12-21 10:47 Misdirection 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 都2021了,RecyclerView嵌套滑动置顶应该已经被说烂了吧,但是如果项目中真的需要一个这样的结构应用到首页,想找到一个成熟的方案并不容易。这篇文章给出的是已稳定运行大半年的嵌套滑动代码。代码地址: https://github.com/youlookwhat/ByRecyclerView/ 阅读全文
posted @ 2021-12-20 16:01 Misdirection 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 列表的内容是由服务器返回的分页数据,每次浏览到当前页的尾部,都会拉取下一页的数据。这中断用户的浏览,不免产生等待。产品希望让这个过程无感知。一种实现方案是预加载,即在一页数据还未看完时就请求下一页数据,让用户感觉列表的内容是无穷的。 监听列表滚动状态第一个想到的方案是监听列表滚动状态,当列表快滚动到 阅读全文
posted @ 2021-12-18 18:03 Misdirection 阅读(100) 评论(0) 推荐(0) 编辑
摘要: MotionEffect MotionEffect是2.1中的一个新的MotionHelper,可以让你根据视图的整体运动方向,自动为其引用的视图添加关键帧。它可以简化很多过渡动画的创作。 为了更好地理解它的作用,请看下面的例子。这个例子只使用了MotionLayout的start和end功能,它自 阅读全文
posted @ 2021-12-17 14:50 Misdirection 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 面试的时候经常会被问及多线程同步的问题,例如: “ 现有 Task1、Task2 等多个并行任务,如何等待全部任务执行完成后,开始执行 Task3 ? ” Kotlin 中有多种实现方式可供选择,本文将所有这些方式做了整理: Thread.join Synchronized ReentrantLoc 阅读全文
posted @ 2021-12-16 15:15 Misdirection 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 在闲暇冲浪的时候,无意间看到了这张设计图,眼睛一亮,感觉这个设计和创意非常酷,打算着手实现一下。关于设计图的作者没找到,如果有人知道的话,请告知我,我会添加设计引用的,欢迎来我的Github 设计图如下: 整体效果图如下: 源码Github: https://github.com/DingMouRe 阅读全文
posted @ 2021-12-15 16:41 Misdirection 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一般手机上的 Android App,主要的交互方式是点击。用户在点击后,App 可能做出在页面内更新 UI、新开一个页面或者发起网络请求等操作。Android 系统本身没有对重复点击做处理,如果用户在短时间内多次点击,则可能出现新开多个页面或者重复发起网络请求等问题。因此,需要对重复点击有影响的地 阅读全文
posted @ 2021-12-14 11:40 Misdirection 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 基本思路 游戏逻辑比较简单,所以没有使用 MVI 之类的框架,但是整体仍然遵从数据驱动UI的设计思想: 定义游戏的状态 基于状态的UI绘制 用户输入触发状态变化 1. 定义游戏状态 游戏的状态很简单,即当前各棋子(Chees)的摆放位置,所以可以将一个棋子的 List 作为承载 State 的数据结 阅读全文
posted @ 2021-12-13 11:50 Misdirection 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 老规矩,咱们先来看看效果图! 再来看android的实现效果。 下面我们和自定义view实现超萌动感天气小太阳一样,开始解析动画!(没看过天气小太阳的朋友可以先去看天气小太阳,有些天气小太阳讲过的套路将不再讲,同时需要掌握path、camera、贝塞尔曲线等,不然部分代码可能会引起不适)。 我们先把 阅读全文
posted @ 2021-12-12 10:31 Misdirection 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 本篇效果图: 新增效果(不同于本篇效果的另一种效果,包含在本项目中): 第一张图 通过RecyclerView+Vlayout多布局实现;第二张具有实战性质的效果图 通过CoordinatorLayout+RecyclerView实现; 第一版得布局结构图: 起初考虑到TabLayout和Recyc 阅读全文
posted @ 2021-12-10 11:49 Misdirection 阅读(192) 评论(0) 推荐(0) 编辑