簡體   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