随笔分类 - Android
摘要:
自定义 Composable 组件 目录一、Composable 组件渲染流程1.1 组合1.2 布局1.3 绘制二、自定义组合三、自定义布局3.1 LayoutModifier (自定义 View)3.2 Layout (自定义 ViewGroup)3.3 固有特性测量Intrinsic3.3.1
        阅读全文
                
自定义 Composable 组件 目录一、Composable 组件渲染流程1.1 组合1.2 布局1.3 绘制二、自定义组合三、自定义布局3.1 LayoutModifier (自定义 View)3.2 Layout (自定义 ViewGroup)3.3 固有特性测量Intrinsic3.3.1
        阅读全文
摘要:问题 在使用 Jetpack Compose 延迟列表时遇到一个坑,简单记录一下。直接上代码: 这个代码看起来也没有什么问题,滑动正常,点击滑动到顶部也正常。 但是极端操作:在一边滑动列表一边点击按钮,就出问题了。这样再点击按钮,就不生效了。从日志来看,点击时协程发射值没有问题,但是 collect
        阅读全文
                
摘要:
目录前言一、Jetpack Compose 中处理嵌套滚动的思想二、Modifier.nestedScroll2.1 NestedScrollConnection2.2 NestedScrollDispatcher三、实操讲解3.1 父组件消费子组件给过来的事件——NestedScrollConne
        阅读全文
                
目录前言一、Jetpack Compose 中处理嵌套滚动的思想二、Modifier.nestedScroll2.1 NestedScrollConnection2.2 NestedScrollDispatcher三、实操讲解3.1 父组件消费子组件给过来的事件——NestedScrollConne
        阅读全文
摘要:
目录一、点按手势1.1 Modifier.clickable1.2 Modifier.combinedClickable二、滚动手势2.1 滚动修饰符 Modifier.verticalScorll / Modifier.horizontalScorll2.2 可滚动修饰符 Modifier.scr
        阅读全文
                
目录一、点按手势1.1 Modifier.clickable1.2 Modifier.combinedClickable二、滚动手势2.1 滚动修饰符 Modifier.verticalScorll / Modifier.horizontalScorll2.2 可滚动修饰符 Modifier.scr
        阅读全文
摘要:
问题:Jetpack Compose 中使用 Material 包中的控件,点击默认会有水波纹效果。如何去除这个点击水波纹效果呢? 看下 Modifier.clickable 的签名: fun Modifier.clickable( interactionSource: MutableInterac
        阅读全文
                
问题:Jetpack Compose 中使用 Material 包中的控件,点击默认会有水波纹效果。如何去除这个点击水波纹效果呢? 看下 Modifier.clickable 的签名: fun Modifier.clickable( interactionSource: MutableInterac
        阅读全文
摘要:
看问题本质,设置全面屏,是系统窗口的行为,与 View 和 Compose 有什么关系呢? 所以,原理和传统 View 视图是一样的,甚至 Api 都是一模一样的,不熟悉的可以看我之前的文章。传送门: Android 全面屏体验 那为什么还要写这篇文章呢?主要是在 Compose 中写法上的一些区别
        阅读全文
                
看问题本质,设置全面屏,是系统窗口的行为,与 View 和 Compose 有什么关系呢? 所以,原理和传统 View 视图是一样的,甚至 Api 都是一模一样的,不熟悉的可以看我之前的文章。传送门: Android 全面屏体验 那为什么还要写这篇文章呢?主要是在 Compose 中写法上的一些区别
        阅读全文
摘要:
本文全面介绍 Jetpack Compose 中的动画。
        阅读全文
                
本文全面介绍 Jetpack Compose 中的动画。
        阅读全文
摘要:
目录一、 Composable 的生命周期二、 Composable 的副作用2.1 SideEffect2.2 DisposableEffect2.3 LaunchedEffect2.4 rememberCoroutineScope2.5 rememberUpdatedState2.6 deriv
        阅读全文
                
目录一、 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 会反复
        阅读全文
                
目录一、状态变化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。
        阅读全文
                
本文主要讲解了 Compose 中状态的概念。最后做个小结,
- Compose UI 依赖状态变化,触发重组,驱动界面更新。
- 使用 remember 和 rememberSaveable 进行状态持久化。remember 保证在 recompose 过程中状态稳定,rememberSaveable 保证 Activity 自动销毁重建过程中状态稳定。
- 状态上提,尽可能将 Stateful 组件转换为 Stateless 组件。
- 视情况使用 Stateful、StateHoler、ViewModel 管理状态。
- 将 LiveData、RxJava、Flow 数据流转换为 State。
        阅读全文
摘要:
本文通过创建一个 Demo 示例,说明如何使用 Jetpack Compose, 简单介绍了 Jetpack Compose Api 设计原则,以及 Compose 与 View 的互操作性。
        阅读全文
                
本文通过创建一个 Demo 示例,说明如何使用 Jetpack Compose, 简单介绍了 Jetpack Compose Api 设计原则,以及 Compose 与 View 的互操作性。
        阅读全文
摘要:
目录写在前面一、Jetpack Compose 是什么1.1 全新的 Android UI 开发框架1.2 命令式UI 与 声明式UI二、Google 为什么力推 Jetpack Compose2.1 开发效率更高2.2 组合优于继承三、为什么要学习 Jetpack Compose3.1 声明式 U
        阅读全文
                
目录写在前面一、Jetpack Compose 是什么1.1 全新的 Android UI 开发框架1.2 命令式UI 与 声明式UI二、Google 为什么力推 Jetpack Compose2.1 开发效率更高2.2 组合优于继承三、为什么要学习 Jetpack Compose3.1 声明式 U
        阅读全文
摘要:
如何在 WindowManager.addView 中使用 Jetpack Compose 一、引出问题 Android 开发中,很常见的一个场景,通过 WindowManager.addView() 添加一个 View 到屏幕上。Android 最新的视图框架 Jetpack Compose,如何
        阅读全文
                
如何在 WindowManager.addView 中使用 Jetpack Compose 一、引出问题 Android 开发中,很常见的一个场景,通过 WindowManager.addView() 添加一个 View 到屏幕上。Android 最新的视图框架 Jetpack Compose,如何
        阅读全文
摘要:kotlinx.serialization —— 一个可以取代 Gson 的高效的 Json 解析框架
        阅读全文
                
摘要:一、bug 背景 项目中有下面这样一段代码,在 Android T 版本运行正常,现在适配到 Android U 上之后,运行时 crash 了。。。。 ... values.put(MediaStore.Images.Media.DATA, file.absolutePath) values.pu
        阅读全文
                
摘要:亲测可行,Android Studio 查看源码出现 Source for ‘Android API xxx Platform’ not found 的解决方法 如标题中的问题,产生的原因就是 SDK 源码目录下找不到对应版本的源码文件。解决方案一般就是下载对应版本的源码文件即可。 这里主要是另一种
        阅读全文
                
摘要:
如果你会 Java, 那么来看一看 Kotlin , 基础入门。
如果你不理解 Kotlin 的lambda 表达式,那么来看一看,帮助你真正理解函数类型,lambda 表达式。
        阅读全文
                
如果你会 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
        阅读全文
                
摘要:一、根目录下 build.gradle 变更 变更前: buildscript { ext.kotlin_version = '1.5.0' repository { repository { mavenCentral() jcenter() } dependencies { classpath '
        阅读全文
                

避坑指南!!!
        
浙公网安备 33010602011771号