繁体   English   中英

以编程方式(和放大)将视图添加到布局非常慢

[英]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和Horizo​​ntall Scroll View,它创建的布局更少(只有10个而不是20个,而且很简单)。

谢谢

尝试仅使LayoutInflater在循环外一次,然后将其添加到您的容器视图中。 (假设parentviewHolder.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM