Jetpack Compose(4)——重组
上一篇文章讲了 Compose 中状态管理的基础知识,本文讲解 Compose 中状重组的相关知识。 一、状态变化 1.1 状态变化是什么 根据上篇文章的讲解,在 Compose 我们使用 State 来声明一个状态,当状态发生变化时,则会触发重组。那么状态变化是指什么呢? 下面我们来看一个例子: @Composable fun NumList() { val num by re...
上一篇文章讲了 Compose 中状态管理的基础知识,本文讲解 Compose 中状重组的相关知识。 一、状态变化 1.1 状态变化是什么 根据上篇文章的讲解,在 Compose 我们使用 State 来声明一个状态,当状态发生变化时,则会触发重组。那么状态变化是指什么呢? 下面我们来看一个例子: @Composable fun NumList() { val num by re...
上一篇文章拿 TextField 组件举例时,提到了 State,即状态。本篇文章,即讲解 State 的相关改概念。 一、什么是状态 与其它声明式 UI 框架一样,Compose 的职责非常单纯,仅作为对数据状态的反应。如果数据状态没有改变,则 UI 永远不会自行改变。在 Compose 中,每一个组件都是一个被 @Composable 修饰的函数,其状态就是函数的参数,当参数不变,则函...
一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可用的选项,因为 ...
写在前面 Jetpack Compose 已经不是什么新技术了,Google 早在 2019 年就推出 Jetpack Compose 的首个 alpha 版本,时至今日,相当大比例的国内 Android 开发者还没有学习使用过。本篇文章主要介绍 Jetpack Compose 的一些发展背景,接下来会有一个系列的文章,来逐步讲述 Jetpack Compose 的一些知识点。 一、Jet...
一、引出问题 你是否有在使用 Gson 序列化对象时,见到如下异常: Abstract classes can't be instantiated! Register an InstanceCreator or a TypeAdapter for this type. 什么时候会出现如此异常。下面举个栗子: import com.google.gson.Gson import com...
Adobe 全家桶 2024 破解激活工具
一、bug 背景 项目中有下面这样一段代码,在 Android T 版本运行正常,现在适配到 Android U 上之后,运行时 crash 了。。。。 ... values.put(MediaStore.Images.Media.DATA, file.absolutePath) values.put(MediaStore.Images.Media.DISPLAY_NAME, file.n...
亲测可行,Android Studio 查看源码出现 Source for ‘Android API xxx Platform’ not found 的解决方法 如标题中的问题,产生的原因就是 SDK 源码目录下找不到对应版本的源码文件。解决方案一般就是下载对应版本的源码文件即可。 这里主要是另一种情况,每次 Google 发布 Android 新的版本时,对应源码还没有提供下载(一般会...
[toc] 一、基础语法 Koltin 是一种静态强类型语言,它要求在编译时确定变量类型,并在运行时严格执行类型检查。 声明变量时必须指定变量类型,无法隐式地将不同类型的值分配给变量。 有助于减少类型错误,使得代码更加稳健和可维护。 1.1 常见数据类型 Byte、 Short、 Int、 Long、 Float、 Double、 Char、 Boolean、 String...
Kotlin Return 到标签 先看例子: (1..5).forEach { if (it == 3) { return@forEach } println(it) } println("test over") 这段代码执行结果是什么? 错误: 1 2 test over 这里可千万不要想当然,认为循环会结束。正确的结果是 1 2...