问题标签 [lazycolumn]

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 回答
721 浏览

android-jetpack-compose - Compose:LazyColumn 在单个项目更新时重新组合所有项目

我正在尝试使用 LazyColumn 在列表中显示订单列表。这是代码:

这是方法,我称之为可组合:

我获取所有订单并显示在 LazyColumn 中。但是,当更新单个订单时,整个 LazyColumn 都会重新组合。这是我的 ViewModel 的样子:

注意:finalizeOrders()会根据 orderId 进行一些列表操作,以使用更新后的订单更新订单。

这就是我的状态:

如果我的数据库中有 10 个订单并且我更新了一个状态(比如说第 5 个项目),那么OrderDetails会被调用 20 次。不知道为什么。我可以优化它以确保只有第 5 个索引项将被重新组合,并且OrderDetals仅使用新订单调用。

0 投票
0 回答
152 浏览

android - LazyColumn 成分说明

我正在使用 LazyColumn 可组合来实现带有粘性标题的折叠工具栏行为。然后我意识到 Lazycolumn 会不断地渲染项目并且从未停止这样做。作为一个例子,下面的代码(不能比这更容易)会给我下面的logcat:

为了问题的长度,我剪掉了 logcat,但只要应用程序处于打开状态,它就会继续运行......这是在 jetpack-compose 版本 beta09 上。这是一种正常的行为还是正常的,我觉得 LazyColumn 内的可组合物无限期地(重新)组合起来很奇怪?希望有人可以就此事分享一些启示。谢谢你的时间

0 投票
1 回答
948 浏览

android - Jetpack Compose - 恢复 LazyColumn 滚动状态

我有一个LazyColumn包含多个LazyRow. 用旧的术语来说,嵌套的 RecyclerView。

我的问题是,LazyColumn移动到新的可组合(不同的选项卡)时不会恢复滚动状态。但是 inner LazyRows 恢复了它们的状态。

例如,打开主屏幕,滚动到底部然后滚动LazyRow到结束,然后打开不同的选项卡并再次返回主选项卡。LazyColumn从顶部开始(不恢复状态),但最后LazyRow恢复它的滚动状态。

主屏幕包含LazyColumn

TopRatedProducts 包含LazyRow

如何恢复LazyColumn滚动状态?

0 投票
2 回答
2316 浏览

android - Jetpack Compose:将数据从惰性列传递到另一个可组合

我希望你们都做得很好。

我对 Kotlin 很陌生,所以请耐心等待。

我在 jetpack compose 中创建了一个页面,如下图所示,它需要装饰,但至少我想实现该功能。 简单的应用程序界面,左侧是惰性列,右侧是数据显示。

左边是一个惰性列,显示来自 arraylist 的项目列表。惰性列中有可点击的卡片。

我需要的是,一旦使用从列中单击一个项目,其余项目详细信息将显示在右侧的第二个可组合项中。

代码看起来像这样

此点击功能来自显示的卡片

我尝试了几种方法将数据传递到其他可组合但我总是得到错误:

@composable 调用只能在 @composable 函数的上下文中发生

而且我无法删除@Composable注释,因为它具有可组合的内容...

我怎样才能以这种方式传递数据?或者没有导航就不可能?但这需要用户打开另一个页面而不是当前页面......

0 投票
1 回答
451 浏览

android - 动画 LazyColumn 项目组合

到目前为止,有什么方法可以为 LazyColumn/LazyRow 中的项目的可见性设置动画?我似乎找不到这个选项,我试图为我的数据类对象做一个布尔类型的额外参数,然后在那里使用它,如:

AnimatedVisbility(visible = item.visibility){}

但遗憾的是,即使持续时间为fadeIn()8000L ,这也不起作用

我已经读到这正在进行中,但可能是错误的,无论如何有没有办法为项目列表设置动画?

0 投票
1 回答
542 浏览

android - Jetpack compose - 将所有物品放入 LazyColumn 是个好主意吗?

目前,我有一个屏幕

线性布局作为根

  • 浏览器
  • 文本视图
  • 带有 textview 项的 Recyclerview
  • 其他一些布局

在这种情况下,在迁移到性能方面,哪个是更好的选择?

一个

列作为根

  • ViewpagerComposable()
  • 文本可组合()
  • LazyColumn { items(list) { TextComposable(it) } }
  • 其他一些可组合的

或者

LazyColumn 作为根

  • 项目 { ViewpagerComposable() }
  • 项目 { TextComposable() }
  • 项目(列表){ TextComposable(它)}
  • item { 其他一些可组合的 }
0 投票
1 回答
482 浏览

android - Android Jetpack Compose 能够在每个项目上创建带有交互式按钮和值的列表吗?

我目前正在考虑为我的一个朋友创建一个主动跟踪器应用程序,由于我已经有一段时间没有接触应用程序开发了,所以我正在尝试评估哪些工具最适合我的需求。

由于该应用程序将针对 Android 开发,我很确定我将使用 Kotlin,因此 Jetpack Compose 引起了我的注意。在进行了一些研究并浏览了文档之后,我不确定它是否能够实现我想要实现的目标:我希望能够创建一个动态的入口卡列表,按分配给每张卡的特定值排序. (我比较确定 LazyColumns 能够处理)。问题是:这些卡中的每一个都需要有按钮和几个可以用这些按钮操作的附加值。
我无法在文档或使用 Jetpack Compose LazyColumns 的任何示例中找到此类内容的描述。

我创建了一个(制作糟糕的)模型,希望能更好地描述我想做的事情:

小样

任何人都可以分享关于 Jetpack Compose 是否具备这些功能的见解,或者如果不能分享关于使用什么工具的建议?

非常感谢和亲切的问候。

0 投票
2 回答
295 浏览

android - 使用权重修饰符在 LazyColumn 中排列单个项目

我希望有这样的结果。两个大小分别为 2/3 和 1/3 的块。

在此处输入图像描述

我用这段代码得到了预期的结果。

但是当我把它放在一个惰性列中时,似乎没有任何效果。连显示器都没有。

如果我减轻重量并增加一些高度,它会起作用。但我不想在那里硬编码。那么如何使它与重量一起工作。期待一些帮助..

谢谢

注意:我想要滚动功能,这就是为什么要使用LazyColumn

真实场景: 登录屏幕,前 2/3 部分带有徽标,底部 1/3 部分带有文本和按钮

场景1:完美工作:

在此处输入图像描述

场景2:如果用户字体较大或屏幕旋转,他们将无法看到按钮

在此处输入图像描述

0 投票
1 回答
565 浏览

android - LazyColumn 通知项目的修改

我有一个看起来像这样的可组合函数:

正如您可能猜到的那样,LazyColumn 在修改实体后不会刷新,有没有办法在每次更新实体后更新 listData?

编辑:

实体修改:

0 投票
1 回答
64 浏览

android - 如何在运行时添加 texdfields 并在 android jetpack compose 中管理这些文本字段值?

我想使用 jetpack compose创建一个Rate List应用程序。价格表有不同的项目,每个项目根据重量有不同的价格。例如苹果(物品)1 公斤的价格是 100 卢比,5 公斤的价格是 400 卢比等。像苹果一样,不同的物品有不同的价格和重量。问题是如何在 rumtime 创建文本字段并管理这些重量和价格值。我试试这个喷气背包编写代码

输出屏幕

我尝试的输出屏幕

请解决这个问题