Kotlin更新数据要使用remember

Kotlin Compose Todo小项目 删除添加项目 ,认识状态提升_安果移不动的博客-CSDN博客

接着上面的项目

这里如果是直接使用

randomTint()

那么每次操作数据你会发现都会刷新alpha数据 这并不是我们想要的

正确做法是加上remember{}

@Composable
fun TodoRow(todo: TodoItem, modifier: Modifier = Modifier, onItemClick: (TodoItem) -> Unit) {Row(modifier = modifier.padding(horizontal = 16.dp, vertical = 8.dp).clickable { onItemClick(todo) },//子元素水平均匀分发horizontalArrangement = Arrangement.SpaceBetween) {Text(todo.task)val iconAlpha = remember() {randomTint()}Icon(imageVector = todo.icon.imageVector,tint = LocalContentColor.current.copy(alpha = iconAlpha),contentDescription = stringResource(id = todo.icon.contentDescription))}}private fun randomTint(): Float {val number = Random.nextFloat().coerceIn(0.3f, 0.9f)return number}

但是有时候会数据错乱在一起 为了区分 可以在remember添加唯一标志符

    val iconAlpha = remember(todo.id) {randomTint()}

这样 当数据发生变化 会去重绘和

iconAlpha

有关的组件。

Kotlin Jetpack Compose remember 给Icon添加透明度 remember 添加参数来记录其位置相关推荐

  1. Android kotlin jetpack compose 在APP中部署运行ktor服务器

    Android kotlin jetpack compose 在APP中部署运行ktor服务器 前言 添加依赖 服务器管理 活动 效果 DEMO 完事 前言 遇到需求,需要在APP中部署一个服务器,局 ...

  2. 安卓开发: Jetpack compose + kotlin 实现 俄罗斯方块游戏

    文章目录 前言 俄罗斯方块开发文档 1.摘要 2.开发工具选取 2.1.Compose 的自身优点 2.2.数据驱动界面 3.设计需求 3.1.功能需求 3.1.1.基本游戏功能 3.1.2.拓展功能 ...

  3. (转)Android Jetpack Compose 最全上手指南

    在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...

  4. 原创|Android Jetpack Compose 最全上手指南

    在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...

  5. Android Jetpack Compose 最全上手指南 | 开发者说·DTalk

    本文原作者: 码农西哥,原文发布于微信公众号: Android 技术杂货铺  https://mp.weixin.qq.com/s/7tKv_RamfW0rG8tZHXH_rg 在 2019 年的 G ...

  6. Android原生UI开发框架 《Jetpack Compose入门到精通》最全上手指南

    前言 在去年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明 ...

  7. 重磅首发!Jetpack Compose 完全开发手册,从入门到精通!

    前 言 Jetpack 架构组件 及 标准化开发模式 的确立,意味着 Android 开发已步入成熟阶段.现在的Android岗招人的时候也非常看重应试者对 Jetpack 架构组件的理解程度. 今天 ...

  8. Jetpack Compose - Icon

    Jetpack Compose - Icon 1.属性一览 2.使用示例 3.更新 4.未解决问题 Compose系列文章,请点原文阅读.原文:是时候学习Compose了! 1.属性一览 目前基于al ...

  9. Android kotlin 将Base64字符串转换成Bitmap,并在jetpack compose的Image控件中显示

    Android kotlin 将Base64字符串转换成Bitmap 前言 代码 将Base64字符串转换成Bitmap 在jetpack compose的Image控件中显示Bitmap 完事 前言 ...

最新文章

  1. 300万奖金池,第二届“中国版ImageNet”开赛
  2. 如何将C# 7类库升级到C# 8?使用可空引用类型
  3. android viewpager嵌套侧滑删除listview冲突问题
  4. 经典算法——KMP模式匹配
  5. 天津理工大学c语言上机报告3,天津理工大学-c语言上机报告4.pdf
  6. 测试MongoDB的自动分片
  7. adf时间作用域_ADF:在任务流终结器中支持bean作用域
  8. 存款惊人_如何使您的图快速美丽惊人
  9. python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项
  10. Android:沉浸式状态栏(一)工具类
  11. Maven系列第4篇:仓库详解
  12. 书籍《图说区块链》读后感
  13. SIFT算法特征描述子构建---关键点定位原理及代码
  14. Scrapy框架爬取下载王者荣耀英雄壁纸
  15. 九十年前到江西(2009-06-09)
  16. 骨传导耳机优缺点有哪些?骨传导耳机科普与推荐
  17. Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称
  18. JSP网上鞋子商城网站
  19. 服务器程序运行的相关操作
  20. Mac appStore下载软件报500错误的解决方法

热门文章

  1. 有趣的自定义view —《聆雨》· 上下滑动面板
  2. 关于第一次面试总结(嵌入式软件开发工程师)
  3. 程序员可以在外包公司做多久?能做一辈子吗?
  4. javaweb接入QQ登录
  5. 转载: 房贷的两种还款方式介绍
  6. vim visual block模式
  7. 键值数据库PebblesDB读后感
  8. 如何便捷绘制上海地铁图?
  9. 收藏从未结束,学习从未开始
  10. 电感式DC/DC 升压原理