我有一个自定义布局管理器的回收视图(它是一个双视图交错网格视图布局管理器https://github.com/lucasr/twoway-view/blob/master/layouts/src/main/java/org/lucasr/twowayview/widget/StaggeredGridLayoutManager.java )。
我用这个来显示图片列表。这些映像是异步加载的,这意味着,当这些项处于活动状态时,我会解码图像数据,然后将该位图加载到列表项视图中。
现在的问题是,每当我将图像位图设置到项目的图像视图上时,就会在布局管理器上调用onLayoutChildren,然后布局管理器再次列出所有子元素。
这是一种预期的行为吗?也就是说,更改子元素的内容(此处,imageview )会导致父回收视图在其布局管理器上发布onLayoutChildren?
如果没有,那我该如何预防呢?
谢谢,
发布于 2015-04-19 10:27:51
是的,这就是布局系统的工作方式。如果一个子节点请求一个布局,那么它的所有父级onLayout都将被调用。
如果您的视图在新位图到达时不更改大小,则可以通过编写扩展视图并阻止requestLayout调用的自定义视图来处理它。在“回收视图”的源代码中搜索eatRequestLayout,以了解如何做到这一点。
https://stackoverflow.com/questions/29721607
复制相似问题