[英]Adding views to the layout programatically (and inflating) is very slow
我有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和Horizontall Scroll View,它创建的布局更少(只有10个而不是20个,而且很简单)。
谢谢
尝试仅使LayoutInflater在循环外一次,然后将其添加到您的容器视图中。 (假设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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.