这是事情:
有人知道setHasFixedSize方法吗?有些人表示,如果所有项目的大小相同,并且在来自 android.support.v7.widget的RecyclerView类中,它可以进行优化,它用以下注释:RecyclerView可以执行多个优化,如果它可以提前知道更改
适配器内容无法更改RecyclerView本身的大小.如果您使用RecyclerView属于此类别,请将其设置为true.
有人知道setHasFixedSize方法吗?有些人表示,如果所有项目的大小相同,并且在来自 android.support.v7.widget的RecyclerView类中,它可以进行优化,它用以下注释:RecyclerView可以执行多个优化,如果它可以提前知道更改
适配器内容无法更改RecyclerView本身的大小.如果您使用RecyclerView属于此类别,请将其设置为true.
这是什么意思?任何人都可以告诉我使用它的上下文,或者说明上面“这个类别”的含义吗?
非常感谢.
解决方法
对于RecyclerView来说,它的大小(宽度和高度尺寸)是否取决于适配器内容,以避免昂贵的布局操作,这很有趣.如果RecyclerView预先知道其大小不依赖于适配器内容,那么它将跳过检查其大小是否应在每次从适配器添加或删除项目时更改.这尤其重要,因为插入删除元素可能会经常发生.
如果RecyclerView的大小(RecyclerView本身)…
…不依赖于适配器内容:
mRecyclerView.setHasFixedSize(true);
…取决于适配器内容:
mRecyclerView.setHasFixedSize(true);
如果您查看RecyclerView class,您将看到更详细的信息,因为现在,在该类中的许多地方,没有使用mHasFixedSize.
将其设置为true并不意味着RecyclerView大小是固定的,这意味着它不会因适配器内容的更改而改变.例如,RecyclerView大小可能因其父级别的大小更改而改变.