gpt4 book ai didi

android Recyclerview Layoutmanager 的 onLayoutChildren item 内容改变时调用

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:20 25 4
gpt4 key购买 nike

我有一个带有自定义布局管理器的回收器 View (它是一个 twowayview staggeredgridview 布局管理器 https://github.com/lucasr/twoway-view/blob/master/layouts/src/main/java/org/lucasr/twowayview/widget/StaggeredGridLayoutManager.java)

我正在使用它来显示图像列表。这些图像是异步加载的,这意味着,当项目变为 Activity 状态时,我解码图像数据,然后将该位图加载到这些列表项 View 上。

现在,问题是每当我将图像位图设置到项目的 ImageView 上时,都会导致在布局管理器上调用 onLayoutChildren,然后再次布置所有子项。

这是预期的行为吗?意思是,更改子元素(此处为 imageview)的内容会导致父 recyclerview 在其布局管理器上发出 onLayoutChildren?

如果没有,那我该如何防止呢?

谢谢,

最佳答案

是的,这就是布局系统的工作原理。如果一个 child 请求布局,将调用其所有 parent 的 onLayout。

如果您的 View 在新位图到达时没有改变大小,您可以通过编写一个自定义 View 来扩展您的 View 并阻止 requestLayout 调用来处理它。在 RecyclerView 的源代码中搜索 eatRequestLayout 以了解如何执行此操作。

关于android Recyclerview Layoutmanager 的 onLayoutChildren item 内容改变时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com