64得票4回答
Jetpack Compose中的remember实际上是做什么的?它在内部是如何工作的?

查看 codelab 的基础教程,会发现有一个片段可以在单击按钮时增加计数器@Composable fun MyScreenContent(names: List<String> = listOf("Android", "there")) {...

44得票2回答
Jetpack Compose中的@Stable和@Immutable注释是什么意思?

在研究Jetpack Compose示例项目时,我看到了@Stable和@Immutable注释。我一直在查看有关这些注释的Android文档和GitHub,但我不理解。 据我所知,如果使用@Immutable,即使状态发生更改,也不应进行重新组合。然而,经过测试,重新组合会继续进行。 @St...

25得票2回答
Jetpack Compose NavHost 重新组合可组合多次的问题

我发现在使用Navhost compose导航时,可组合屏幕会被多次重新组合以下示例展示了如何将导航与日志集成以标识函数被调用的次数: internal sealed class Screen(val route: String) { object Splash : Screen("sp...

22得票3回答
Jetpack Compose中remember和rememberUpdatedState之间的区别是什么?

我有点困惑,能否有人解释一下以下两者之间的区别: val variable by remember { mutableStateOf() } 并且 val variable by rememberUpdatedState() 当我检查 rememberUpdatedStates 的...

21得票3回答
Jetpack Compose:布局检查器未显示重新组合计数的菜单

Android Studio峰鹿蜂 补丁3 从这个页面上看,我可以看到重新组合计数: https://developer.android.com/jetpack/compose/tooling#recomposition-counts 它没有显示菜单选项给我。只有设备名称和“停止检查”。

15得票1回答
Jetpack Compose Scoped/Smart Recomposition

我正在进行实验,以理解重组和智能重组,并制作了一个样本。 抱歉颜色不好看,它们是用Random.nextIn()生成的,目的是为了观察重新组合的效果,设置颜色对重新组合没有影响,即使不改变颜色也试过了。 gif中包含了三个部分。 示例1 @Composable private fu...

12得票4回答
喷气背包Compose @Stable List<T>参数重组

@Composable函数会被重新组合: 如果其中一个参数被更改,或者 如果其中一个参数不是@Stable/@Immutable 当将items: List&lt;Int&gt;作为参数传递时,compose始终会进行重新组合,无论List是否是不可变的并且无法更改。(List是没有@...

12得票3回答
应用程序在Jetpack Compose的Lazycolumn中由于IndexOutOfBoundsException崩溃。

我在mutableStateListOf中删除项目时遇到了IndexOutOfBoundsException错误,其中MyType是一种自定义类型。myList中大约有250个项目。这些项目在循环中被删除。一次最多可以看到6个元素。当项目数达到小于或等于6(滚动位置在顶部)时,就会引发此异常并...

10得票2回答
Jetpack Compose中的lazy column,当单个项目更新时,所有项目都会重新组合。

我正在尝试进行一些列表操作,但遇到了一个问题,即当单个项目更新时,所有项目都会重新组合。 https://prnt.sc/8_OAi1Krn-qg 我的模型; data class Person(val id: Int, val name: String, val isSelected:...

10得票1回答
@Immutable 在数据类中有哪些好处?

看一下Immutable的文档,这里有一个代码示例: @Immutable data class Person(val name: String, val phoneNumber: String) @Composable fun PersonView(person: Person) { ...