news 2026/4/18 17:23:31

Android 开发 - mutableStateListOf 与 mutableListOf

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android 开发 - mutableStateListOf 与 mutableListOf

mutableStateListOf 与 mutableListOf

1、基本介绍
  1. mutableStateListOf 来自 Jetpack Compose 的运行时库,它是可观察的,列表变化会触发重组,主要用于 UI 状态管理

  2. mutableListOf 来自 Kotlin 标准库,它是不可观察的,列表变化不会触发重组,是通用的集合数据结构

  • 二者都支持列表的标准操作,性能开销上面,mutableStateListOf 开销较高,因为有观察机制
2、演示
  1. 使用 mutableStateListOf,会更新 UI
varfruitList=remember{mutableStateListOf("苹果","香蕉","橙子")}Column{fruitList.forEach{fruit->Text(text=fruit)}Button(onClick={fruitList.add("葡萄")}){Text("添加葡萄")}}
  1. 使用 mutableListOf,不会更新 UI
valfruitList=remember{mutableListOf("苹果","香蕉","橙子")}Column{fruitList.forEach{fruit->Text(text=fruit)}Button(onClick={fruitList.add("葡萄")}){Text("添加葡萄")}}
3、使用 mutableListOf 更新 UI
  1. 如果想让 mutableListOf 更新 UI,使用 mutableStateOf 包装列表,修改时必须赋值新的列表
varfruitListbyremember{mutableStateOf(mutableListOf("苹果","香蕉","橙子"))}Column{fruitList.forEach{fruit->Text(text=fruit)}Button(onClick={valnewFruitList=fruitList.toMutableList()newFruitList.add("葡萄")fruitList=newFruitList}){Text("添加葡萄")}}
  1. 如果修改时没有赋值新的列表,不会更新 UI
varfruitListbyremember{mutableStateOf(mutableListOf("苹果","香蕉","橙子"))}Column{fruitList.forEach{fruit->Text(text=fruit)}Button(onClick={fruitList.add("葡萄")}){Text("添加葡萄")}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:27:53

基于随机森林模型的轴承剩余寿命预测MATLAB实现!

一、研究背景 轴承是旋转机械设备的核心部件,其健康状况直接影响设备的可靠性和安全性。传统的定期维护存在"过度维护"或"维护不足"的问题,预测性维护通过实时监测轴承状态并预测剩余寿命,可实现: 减少非计划…

作者头像 李华
网站建设 2026/4/18 7:54:35

SQL 性能雷区揭秘:为何阿里等大厂严禁使用 ORDER BY RAND()?

在日常开发中,我们常遇到“随机取几条数据”的需求,比如首页推荐、抽奖系统或内容轮播。许多开发者会不假思索地写出如下 SQL: vbnet SELECT * FROM products ORDER BY RAND() LIMIT 5; 简洁、直观、看似完美——但正是这条语句&#xff0…

作者头像 李华
网站建设 2026/4/18 5:42:28

寒假集训8——数论

P1009 [NOIP 1998 普及组] 阶乘之和题目描述用高精度计算出 S1!2!3!⋯n!(n≤50)。其中 ! 表示阶乘,定义为 n!n(n−1)(n−2)⋯1。例如,5!54321120。输入格式一个正整数 n。输出格式一个正整数 S,表示计算结果。输入输出…

作者头像 李华