android - RecyclerView 的 setLayoutFrozen(boolean) 和 setHasFixedSize(boolean) 目的

标签 android android-recyclerview

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

有什么想法吗?

最佳答案

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

当事件停止时,它们不会排队并且会被丢弃。它基本上停止了一切,包括适配器和返回事件,如 View 状态。如果您有多个分层 View 并希望确保用户和任何数据更新不会影响该区域,这可能会很有用,比如在弹出图标后面的折叠 View /部分可见 View 中。

setLayoutFrozen(false)本质上可以被认为是 RecyclerViews 在卡住后调用的 onResume()。

hasFixedSize() 是一个返回值,因此您无法设置。仅当适配器不会更改 RecyclerView 的大小时才返回 true,即使适配器有新内容也是如此。即不允许滚动的固定大小屏幕卡片类型 View

REFERENCE HERE IN ANDROID API DOCS

关于android - RecyclerView 的 setLayoutFrozen(boolean) 和 setHasFixedSize(boolean) 目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960749/

相关文章:

android - 在 AT&T 的 Motorola Backflip 上安装应用程序

android - 从 Android 中的 Espresso 匹配 WebView 中的 View

android - OpenTok 不适用于较旧的 Android(可能缺少 org/webrtc/voiceengine/BuildInfo.class)

java - 按位置组织 RecyclerView 中的 View

android - 每次更新 firebase 数据库数据时都会加载 RecyclerView 适配器

android - recyclerView的卡片之间差距巨大

java - RecyclerView Item 不包裹 ListView 的高度

java - 基于语法的语音识别的 Android 代码

Android多项目依赖和大小

android - 在每个卡片 View 中有一个微调器 - recyclerview 中的卡片 View