问题标签 [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.

0 投票
1 回答
270 浏览

android - Jetpack Compose:ListItem 中的中心图标或尾随元素

我正在尝试使用 ListItem 将图标和尾随元素垂直居中。我不确定是否可能,或者我需要删除 ListItem 并使用列/行的组合。

在此处输入图像描述

我正在使用类似的东西:

提前致谢!

0 投票
0 回答
146 浏览

android-jetpack-compose - 如果 LazyColumn 内的 TextField 位于屏幕底部,则键盘不会打开

如果您将 TextField 聚焦在屏幕底部附近,键盘会出现片刻,然后立即隐藏。但是,如果您从上方聚焦一些 TextField,键盘将照常打开,您可以滚动到底部。如果 windowSoftInputMode 设置为 adjustResize,就会发生这种情况。如果没有设置,那么行为会变成我会说随机(键盘可能会重叠内容,也可能会推送工具栏等)。也许我只是做错了这一切,我不知道。我想知道是否有人以前遇到过这个问题并且可以帮助我。

示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):

撰写版本 1.0.5

0 投票
1 回答
66 浏览

android-jetpack-compose - 当焦点 TextField 离开 LazyColumn 时,键盘不隐藏

也许这是正常行为,但我希望它有所不同。我曾尝试用谷歌搜索解决方案,但没有找到任何合适的(或只是错过了)。

示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):

撰写版本 1.0.5

0 投票
1 回答
105 浏览

android-jetpack-compose - ImeAction 将光标移动到 TextField 的开头

当我单击“下一步”ImeAction 时,光标位置会转到新选择的 TextField 的先前记住的位置(即,如果您曾经手动设置光标位置)。如果没有,那么即使 TextField 不为空,光标也会跳到开头。当通过 ImeAction 获得焦点时,我希望光标始终位于最后。

示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):

撰写版本 1.0.5

0 投票
1 回答
204 浏览

android - Jetpack Compose,设置新数据时如何重置 LazyColumn 位置?

我正在使用 Compose 制作的搜索页面,一切正常,除了在数据更改时返回到第一项LazyColumn的想要行为。LazyColumn

这是我对惰性列的实际实现:

正如文档所说,SideEffect应该在每次重构函数时调用,但它似乎只在带有断点的调试模式下工作SideEffect,否则,它只在第一次创建整个页面时工作。

我已经尝试过使用LaunchedEffect而不是SideEffect使用itemsListas key,但什么也没发生。

为什么我的代码只能在调试模式下工作?或者更好的是,在设置新数据时已经制定了重置位置的可行解决方案?

0 投票
1 回答
48 浏览

android - 为什么我的文本会在此 Android Jetpack Compose 列表的每一行中被剪切?

我创建了一个 LazyColumn 站,当文本连续很长时,它会剪切文本,即使我指定overflow = TextOverflow.Ellipsis. 我该如何解决?

问题截图

0 投票
1 回答
101 浏览

android-jetpack-compose - 如何在 BottomSheetDialogFragment 中正确使用 Jetpack Compose?

例如,我在应用程序中有带有 Compose LazyColumn 代码的 MyBottomSheetDialogFragment:

并使用以下代码显示它:

这就是我们所拥有的:

MyBottomSheetDialogFragment 屏幕图像.jpg

现在,如果向下滚动 LazyColumn 列表,则一切正常,但如果向上滚动 LazyColumn 列表,则滚动底部工作表对话框而不是 LazyColumn 列表。

如何在 BottomSheetDialogFragment 中正确实现 LazyColumn?

当我们使用 XML RecyclerView 列表时,要解决此问题,我们必须使用 NestedScrollView 包装 RecyclerView 列表,如此处所述,但是如何使用 Jetpack Compose 修复它?

0 投票
1 回答
35 浏览

android - 检查特定 LazyColumn 项目何时出现的有效方法?

我需要检查某个LazyColumn项目何时进入视图,一旦出现,onItemWithKeyViewed()只回调一次以通知该项目已被查看。我的尝试:

我的方法的问题是我注意到列表滚动性能严重下降并丢失帧。我意识到这可能是因为它正在检查每一帧上的所有可见项目键?

此外,onItemWithKeyViewed()当前被多次调用,而不仅仅是第一次被查看。

onItemWithKeyViewed()有没有一种更有效的方法可以只在第一次查看项目时进行单个回调"specialKey"

0 投票
1 回答
30 浏览

android - 我怎么知道可以导航“LazyColumn”?

我怎么知道LazyColumn可以导航?

例如,一个列表包含 100 个元素,那么它是一个可以滚动的惰性列,我们显示一个向上滚动的 fab 按钮,但是当这个列表包含 5 个元素时,惰性列不可滚动并且FabButton不再需要。

0 投票
1 回答
46 浏览

android - 只读 mutableStateListOf

在 Jetpack Compose 中,如果我有一个MutableState变量,我可以将它的 State 作为“只读”值暴露给其他类State<String>,就像:

有没有办法做到这SnapshotStateList<>一点?例如,我将如何做到这一点:

我知道我可以通过使用来解决这个问题MutableState<List<String>>,但是每次我想添加/删除项目时我都必须提供一个全新的列表。