RecyclerView的setLayoutFrozen(boolean)和setHasFixedSize(boolean)用途

时间:2016-01-23 07:17:40

标签: android android-recyclerview

我想知道这两种方法在做什么?我试图在我的RecyclerView上设置它,但它似乎没有做任何事情。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

setLayoutFrozen(true)可防止对UI进行任何更新,例如更改图像甚至暂停布局上的事件(如滚动)。这也会阻止子视图更新。

当事件停止时,它们不会排队并将被删除。它基本上会停止包括适配器和视图状态等返回事件在内如果您有多个视图分层并希望确保用户和任何数据更新不会影响该区域,则可能会有用,例如在弹出图标后面的折叠后/部分可见视图中。

在冻结后调用时,

setLayoutFrozen(false)基本上可以被认为是RecyclerViews的onResume()。

hasFixedSize()是一个返回值,所以不能设置。仅当适配器不会更改RecyclerView的大小时,即使适配器具有新内容,它也会返回true。即固定大小屏幕卡片类型视图,不允许滚动

REFERENCE HERE IN ANDROID API DOCS