目录前言NotificationListenerService方法集NotificationListenerService接收流程通知消息发送流程NotificationListenerService注册总结前言在上一篇通知服务NotificationListenerService使用方法 中,我们已经介绍了如何使用NotificationListenerS ......
196
0
0
2023-06-19
目录GestureDetector点击事件双击事件长按事件水平/垂直拖动事件缩放事件InkWellInkListener案例GestureDetectorGestureDetector 是手势识别的组件,可以识别点击、双击、长按事件、拖动、缩放等手势点击事件点击相关事件包括:onTapDown:按下时回调。onTapUp:抬起时回调。onTap:点击事件回调 ......
186
0
0
2023-06-19
目录前言MediumTopAppBar阅读源码核心解决方法重写TopAppBarLayout完整代码前言想用composes实现类似掘金的文章详细页面的标题栏上滑隐藏标题后标题栏显示标题compose.material3下的TopAppBar不能嵌套滚动MediumTopAppBar便使用了MediumTopAppBar一开始用着没什么问题,但是标题字数多了 ......
282
0
0
2023-06-19
目录正文1. Obfuscate code 混淆代码2. background snapshots 后台快照3. Stay up-to-date 更新程序4. Flushing in-memory cache 刷新内存缓存5. local authentication 本地认证6. Secure Storage 安全储存7. Restrict network ......
177
0
0
2023-06-19
目录前言Android Window体系1.Window和Activity以及WindowManager什么时候建立的关系?2.Window什么时候和View进行关联?3.Window有哪些属性?类型?层级关系?z-order?Window标志?Window窗口类型(Type)应用程序窗口子窗口系统窗口Window窗口层级关系(Z-Order)Window窗 ......
251
0
0
2023-06-18
目录方案了解ItemDecoration利用ItemDecoration来绘制悬浮标题栏代码方案1.设置一个悬浮的视图挂在recycleView顶部,随着item的移动位置,悬浮标题自动跟随移动或者是保持原地不动。2.使用recyclerView的ItemDecoration,给指定的item设置不同的itemDecoration,并且跟随item的移动而移 ......
161
0
0
2023-06-17
目录介绍课程目标项目结构设计UI端的设计可复用的Adapter的代码设计可复用的Adapter-GenericAdapter业务(ViewBean)Bean-IconBean主交互端-MainActivity介绍今天给大家讲一下如何构建一个可复用的自定义BaseAdapter,我们每次涉及到ListView GridView等其他的Adapter控件,都需要 ......
142
0
0
2023-06-17
目录Looper是什么简单使用从源码了解loop原理loop分析myLooper()next()handler.dispatchMessagehandler分析消息入队同步屏障总结Looper是什么用于为线程运行消息循环的类。默认情况下,线程没有与之关联的消息循环。要创建一个,在要运行循环的线程中调用 prepare(),然后调用loop()让它处理消息,直 ......
155
0
0
2023-06-17
目录前言系统键盘弹出的原因拦截系统键盘弹出信息画自己的键盘结语前言开篇先吐槽一下,输入框和文本,一直都是官方每个版本改动的重点,先不说功能上全不全的问题,每次版本升级,必有 breaking change 。对于 extended_text_field | Flutter Package (flutter-io.cn) 和 extended_text | F ......
249
0
0
2023-06-17
目录前言从一个报错说起rememberSaveable 源码分析恢复 key 的数据注册 ValueProvider注销 registryDisposableSavableStateRegistry 源码分析saveableStateRegistry 与 SavedStateRegistryDisposableSaveableStateRegistry 与 ......
199
0
0
2023-06-17
目录1.CoroutineContext2.Element的作用3.CoroutineContext相关的操作符原理解析3.1.什么类型的集合3.2.如何管理ElementcombinedContext4.验证以及总结1.CoroutineContext表示一个元素或者是元素集合的接口。它有一个Key(索引)的Element实例集合,每一个Element的实 ......
199
0
0
2023-06-17
目录基础OC-Block分类NSMallocBlock源码探究循环引用解决方案注意点Swift-Closure捕获值基础Block是⼀个自包含的(捕获了上下⽂的常量或者是变量的)函数代码块,可以在代码中被传递和使用。全局和嵌套函数实际上也是特殊的闭包,闭包采用如下三种形式之一:全局函数是一个有名字但不会捕获任何值的闭包嵌套函数是一个有名字并可以捕获其封闭函数 ......
195
0
0
2023-06-17
目录介绍设计项目结构UI端代码后端代码运行效果介绍在上一篇“SimpleAdapter“章节中,我们看到了把:ListView和Listview内部详细页面进行分离的Adapter的设计手法。可是,这个SimpleAdapter的构造函数不够录活、苦涩难懂。很难满足我们实际大多生产场景的开发。因此,今天我们就要来看一个更人性化的“自定义BaseAdapter ......
181
0
0
2023-06-17
目录一、数据绑定流程二、建立观察者模式绑定关系在前面DataBinding原理----布局的加载这篇文章中,我们说明了DataBinding中布局的加载过程,这里继续下一步,数据是如何进行绑定的,这里只介绍单向数据绑定,即数据的变化会反映到控件上;后面再介绍双向数据绑定。在分析源码之前,在心里要有一个概念就是这里的数据绑定是基于观察者模式来实现的,所以在阅读 ......
189
0
0
2023-06-17
目录一、布局加载二、view映射上一章说明了DataBinding生存的类之间关系,现在这里来看看布局是如何加载的以及view是如何映射的。一、布局加载这里把之前的代码重新贴下方便说明,代码如下:class MainActivity : AppCompatActivity() { private val viewModel: SimpleViewM ......
154
0
0
2023-06-17