我在sna
内添加了RecyclerView
。基本上我希望RecyclerView与其他视图一起滚动。我面临的问题是,对于一小组数据,它工作正常,但是每当我启动活动时,对于大量数据(200个条目),它会冻结大约3-5秒然后加载。我删除了NestedScrollView
并且它完美无缺,但它并没有为我提供我想要的行为。
(有关额外信息,我正在从SQLite数据库加载数据。滚动没有问题,因为它很流畅。唯一的问题是活动冻结了一段时间)
NestedScrollView
答案 0 :(得分:8)
RecyclerView
内NestedScrollView
的这种情况。
RecyclerView
正在调用onCreateViewHolder()
次,等于您的数据大小。
如果数据有200个项目,则冻结onCreateViewHolder()
将被调用200次。
答案 1 :(得分:0)
上述问题是因为当您将WRAP_CONTENT或MATCH_PARENT用作RecyclerView的高度时,NestedScrollView中的RecyclerView作为子级或subChild的高度是不定的。
为我解决了这个问题的一种解决方案是将RecyclerView Height设置为固定大小。您可以将height设置为dp值,也可以将其设置为与设备高度匹配的像素值,如果您的需求需要垂直的Infinitive RecyclerView。
下面是用于在Kotlin中设置recyclerView大小的代码段
val params = recyclerView.layoutParams
params.apply {
width = context.resources.displayMetrics.widthPixels
height = context.resources.displayMetrics.heightPixels
}
recyclerView.layoutParams = params
答案 2 :(得分:-2)
正如Nancy所说,recyclerview.setNestedScrollingEnabled(false);将解决滚动卡住的问题。我也遇到过这种类型的问题,并通过虚假的NestedScroll解决。