android - 如何修复 RecyclerView 的 StaggeredGridLayoutManager 在滚动时分离内容并随机飞行
问题描述
我试图获取我拥有 API 的远程图像并将其显示在砌体网格(Pinterest 样式)中。
起初我使用的是简单的 GridView,它运行良好,但没有 Masonry 风格。然后,经过各种研究,我终于使用了:
Fresco
获取图像和缓存RecyclerView
用于StaggeredGridLayoutManager
显示来自 API 的图像。- 自定义布局
SimpleDraweeView
以显示每个项目。 - 我自己的自定义适配器“MasonryAdapter”将数据绑定到视图。
在自定义布局中,我将 SimpleDraweeView 设置为:
layout_with = match_parent
layout_height = wrap_content
然后,在我的适配器中,我为每个图像设置了正确的纵横比,就像在我的 API 中一样,我可以轻松获取图像的宽度和高度。
holder.contentImage.aspectRatio = image.width.toFloat() / image.height.toFloat()
虽然一开始一切看起来都可以接受,但滚动后我发现一切都崩溃了。我对Android
&很陌生Kotlin
,请问您是否需要任何东西。在这里,我将 GIF 附加到正在发生的事情上。
如果图片被删除,请在此处查看:https ://ibb.co/dy0EjH
解决方案
推荐阅读
- arrays - 如何使用@EnvironmentObject 在 SwiftUI 中自动填充和更新列表?
- google-analytics - 授予对所有 Analytics 帐户的服务帐户访问权限
- dolphindb - 如何将字典列表转换为 DolphinDB 中的表
- angular - 角度事件发射器输出返回未定义
- swift - 取消向后滑动时,滚动视图与导航栏“断开连接”
- tensorflow - TensorFlow Keras Sequential API GPU 使用情况
- c - 从 sizeof 返回的意外值
- microsoft-teams - 是否有可用于 ActionCard 的 HTTP PUT 方法?
- python - 如何刮