我有一个RecyclerView,它包含多个视图(大约30个),每个视图都有一个页面/高度。
RecyclerView中的每个页面都包含可以水平滚动的视图(第一个水平滚动视图中约有20个视图)和(第二个水平滚动查看中约有10个视图)。
这意味着每次创建视图时,每个RecyclerView都会创建大约30个视图(并对其进行膨胀)。这是非常非常缓慢的。
for(int i = 0; i < 10; i++) {
View details = LayoutInflater.from(parent.getContext()).inflate(R.layout.details, parent, false);
viewHolder.container.addView(details);
}
我尝试过很多东西,比如嵌套的RecyclerViews,但速度同样慢。有没有一个好的解决方案可以在不受性能影响的情况下为每个页面创建多个视图(主要是在垂直滚动时,只滚动一秒钟,但仍然非常烦人)。
到目前为止,我最好的解决方案是RecyclerView+每页嵌套的RecyclerView和Horizontal Scroll View,它创建的布局更少(只有10个而不是20个,而且很简单)。
感谢
尝试只在循环外获取Layout充气器一次,并将其添加到容器视图中。(假设parent
和viewHolder.container
相同)
LayoutInflater inflator = LayoutInflater.from(parent.getContext())
for(int i = 0; i < 10; i++) {
View details = inflator.inflate(R.layout.details, viewHolder.container, true);
}