随笔分类 - Kotlin
摘要:问题 在使用 Jetpack Compose 延迟列表时遇到一个坑,简单记录一下。直接上代码: 这个代码看起来也没有什么问题,滑动正常,点击滑动到顶部也正常。 但是极端操作:在一边滑动列表一边点击按钮,就出问题了。这样再点击按钮,就不生效了。从日志来看,点击时协程发射值没有问题,但是 collect
阅读全文
摘要:
目录前言一、Jetpack Compose 中处理嵌套滚动的思想二、Modifier.nestedScroll2.1 NestedScrollConnection2.2 NestedScrollDispatcher三、实操讲解3.1 父组件消费子组件给过来的事件——NestedScrollConne
阅读全文

摘要:
问题:Jetpack Compose 中使用 Material 包中的控件,点击默认会有水波纹效果。如何去除这个点击水波纹效果呢? 看下 Modifier.clickable 的签名: fun Modifier.clickable( interactionSource: MutableInterac
阅读全文

摘要:
看问题本质,设置全面屏,是系统窗口的行为,与 View 和 Compose 有什么关系呢? 所以,原理和传统 View 视图是一样的,甚至 Api 都是一模一样的,不熟悉的可以看我之前的文章。传送门: Android 全面屏体验 那为什么还要写这篇文章呢?主要是在 Compose 中写法上的一些区别
阅读全文

摘要:
本文全面介绍 Jetpack Compose 中的动画。
阅读全文

摘要:
目录一、 Composable 的生命周期二、 Composable 的副作用2.1 SideEffect2.2 DisposableEffect2.3 LaunchedEffect2.4 rememberCoroutineScope2.5 rememberUpdatedState2.6 deriv
阅读全文

摘要:
目录一、状态变化1.1 状态变化是什么1.2 mutableStateListOf 和 mutableStateMapOf二、重组的特性2.1 Composable 重组是智能的2.2 Composable 会以任意顺序执行2.3 Composable 会并发执行2.4 Composable 会反复
阅读全文

摘要:
本文主要讲解了 Compose 中状态的概念。最后做个小结,
- Compose UI 依赖状态变化,触发重组,驱动界面更新。
- 使用 remember 和 rememberSaveable 进行状态持久化。remember 保证在 recompose 过程中状态稳定,rememberSaveable 保证 Activity 自动销毁重建过程中状态稳定。
- 状态上提,尽可能将 Stateful 组件转换为 Stateless 组件。
- 视情况使用 Stateful、StateHoler、ViewModel 管理状态。
- 将 LiveData、RxJava、Flow 数据流转换为 State。
阅读全文

摘要:kotlinx.serialization —— 一个可以取代 Gson 的高效的 Json 解析框架
阅读全文
摘要:
如果你会 Java, 那么来看一看 Kotlin , 基础入门。
如果你不理解 Kotlin 的lambda 表达式,那么来看一看,帮助你真正理解函数类型,lambda 表达式。
阅读全文

摘要:某天将项目 kotlin 版本升级到了 1.8.0 ,然后编译报错了, Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8 然后开始寻求解决方案... Duplicate class kotlin-stblib vs kotlin-stdlib
阅读全文
摘要:一、内联拓展函数 let let 扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。 1.1 let 函数的使用的一般结构 object.let { it.todo() //在函数
阅读全文
摘要:本文是 Kotlin 协程系列最后一篇文章,讲述了在 Android 中使用协程的一些奇技淫巧。大多数类容出自 google IO 大会
阅读全文
摘要:本文介绍了 Flow 和 Channel 之间的相互转换、冷流转换为热流、以及将回调式 Api 转换为数据流式的 Api
阅读全文
摘要:本文详细介绍了协程中数据流 Flow 的使用。结合实例,讲解了 Flow 的各种操作符,介绍了 热流 StateFlow 和 SharedFlow 的相关知识。
阅读全文
摘要:本文是 Kotlin 协程系列文章第二篇,介绍了协程中的通道,Channel 的概念 ,用法,以及 SendChannel、ReceiveChannel、 BroadcastChannel 等概念。阅读本文,全面了解协程中的 Channel
阅读全文
摘要:本文是 Kotlin 协程系列文章第一篇,全面介绍了 Kotlin 协程的概念、使用方式、作用域、上下文、并发以及挂起等,并分析讲解了协程数据同步方式。
阅读全文
摘要:
Kotlin 函数和 lambda 表达式傻傻分不清?这篇文章带你彻底弄清楚。
阅读全文
