问题标签 [android-jetpack-compose-list]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-jetpack-compose - 如果 LazyColumn 内的 TextField 位于屏幕底部,则键盘不会打开
如果您将 TextField 聚焦在屏幕底部附近,键盘会出现片刻,然后立即隐藏。但是,如果您从上方聚焦一些 TextField,键盘将照常打开,您可以滚动到底部。如果 windowSoftInputMode 设置为 adjustResize,就会发生这种情况。如果没有设置,那么行为会变成我会说随机(键盘可能会重叠内容,也可能会推送工具栏等)。也许我只是做错了这一切,我不知道。我想知道是否有人以前遇到过这个问题并且可以帮助我。
示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):
撰写版本 1.0.5
android-jetpack-compose - 当焦点 TextField 离开 LazyColumn 时,键盘不隐藏
也许这是正常行为,但我希望它有所不同。我曾尝试用谷歌搜索解决方案,但没有找到任何合适的(或只是错过了)。
示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):
撰写版本 1.0.5
android-jetpack-compose - ImeAction 将光标移动到 TextField 的开头
当我单击“下一步”ImeAction 时,光标位置会转到新选择的 TextField 的先前记住的位置(即,如果您曾经手动设置光标位置)。如果没有,那么即使 TextField 不为空,光标也会跳到开头。当通过 ImeAction 获得焦点时,我希望光标始终位于最后。
示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):
撰写版本 1.0.5
android - Jetpack Compose,设置新数据时如何重置 LazyColumn 位置?
我正在使用 Compose 制作的搜索页面,一切正常,除了在数据更改时返回到第一项LazyColumn
的想要行为。LazyColumn
这是我对惰性列的实际实现:
正如文档所说,SideEffect
应该在每次重构函数时调用,但它似乎只在带有断点的调试模式下工作SideEffect
,否则,它只在第一次创建整个页面时工作。
我已经尝试过使用LaunchedEffect
而不是SideEffect
使用itemsList
as key
,但什么也没发生。
为什么我的代码只能在调试模式下工作?或者更好的是,在设置新数据时已经制定了重置位置的可行解决方案?
android-jetpack-compose - 如何在 BottomSheetDialogFragment 中正确使用 Jetpack Compose?
例如,我在应用程序中有带有 Compose LazyColumn 代码的 MyBottomSheetDialogFragment:
并使用以下代码显示它:
这就是我们所拥有的:
MyBottomSheetDialogFragment 屏幕图像.jpg
现在,如果向下滚动 LazyColumn 列表,则一切正常,但如果向上滚动 LazyColumn 列表,则滚动底部工作表对话框而不是 LazyColumn 列表。
如何在 BottomSheetDialogFragment 中正确实现 LazyColumn?
当我们使用 XML RecyclerView 列表时,要解决此问题,我们必须使用 NestedScrollView 包装 RecyclerView 列表,如此处所述,但是如何使用 Jetpack Compose 修复它?
android - 检查特定 LazyColumn 项目何时出现的有效方法?
我需要检查某个LazyColumn
项目何时进入视图,一旦出现,onItemWithKeyViewed()
只回调一次以通知该项目已被查看。我的尝试:
我的方法的问题是我注意到列表滚动性能严重下降并丢失帧。我意识到这可能是因为它正在检查每一帧上的所有可见项目键?
此外,onItemWithKeyViewed()
当前被多次调用,而不仅仅是第一次被查看。
onItemWithKeyViewed()
有没有一种更有效的方法可以只在第一次查看项目时进行单个回调"specialKey"
?
android - 我怎么知道可以导航“LazyColumn”?
我怎么知道LazyColumn
可以导航?
例如,一个列表包含 100 个元素,那么它是一个可以滚动的惰性列,我们显示一个向上滚动的 fab 按钮,但是当这个列表包含 5 个元素时,惰性列不可滚动并且FabButton
不再需要。
android - 只读 mutableStateListOf
在 Jetpack Compose 中,如果我有一个MutableState
变量,我可以将它的 State 作为“只读”值暴露给其他类State<String>
,就像:
有没有办法做到这SnapshotStateList<>
一点?例如,我将如何做到这一点:
我知道我可以通过使用来解决这个问题MutableState<List<String>>
,但是每次我想添加/删除项目时我都必须提供一个全新的列表。