【问题标题】:RecyclerView jumps when scrolling variable height ComposeView items滚动可变高度 ComposeView 项时 RecyclerView 跳转
【发布时间】:2022-08-24 18:48:57
【问题描述】:

我有一个RecyclerView,它托管使用 Jetpack Compose 呈现的项目。物品的高度不同。从列表顶部滚动到底部时,滚动是平滑的。但是,当滚动回顶部时,当出现在屏幕顶部的下一个项目的高度与之前位于屏幕顶部的项目的高度不同时,列表中的项目会跳转。

每个ComposeView 的布局高度设置为WRAP_CONTENT。以前的 XML 布局可以在两个方向上平滑滚动。

我正在使用 Compose 1.2.0 和 RecyclerView 1.3.0-beta01。

有没有在两个方向上平滑滚动的解决方案?

更新:我报告了一个错误here 并提供了一个示例项目来演示问题here

  • 您是否尝试过使用 LazyColumn 而不是回收视图?
  • @AugustoAlonso,使用LazyColumn 将解决这个问题,这是长期计划。我们在这个RecyclerView 中只有一些项目视图类型,我们尚未迁移到 Compose,我希望我们可以一次执行一种视图类型的迁移,而不会出现重大问题。

标签: android android-recyclerview android-jetpack-compose android-jetpack-compose-layout


【解决方案1】:

有点晚了,但是您使用的是哪个版本的 Compose?

我在1.2.0-alpha06 release notes 版本中遇到了这个问题:

“现在升级 RecyclerView 和 Compose 将导致 RecyclerViews 的滚动性能更好,并将 Compose 视图作为子视图。”

也许你需要更新到最新(1.2.0-alpha06 于 2022 年 3 月发布)...

【讨论】:

  • 谢谢你的建议。我已更新原始问题以表明我正在使用 Compose 1.2.0 和 RecyclerView 1.3.0-beta01。我还添加了指向我提交错误报告和示例项目的链接。
【解决方案2】:

我有同样的问题。 请查看有关此问题的答案:

https://stackoverflow.com/a/52841266/4416957

【讨论】:

    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多