簡體   English   中英

在android中重用膨脹的視圖

[英]reuse the inflated view in android

下面這段代碼將相同的視圖膨脹20次。 膨脹是昂貴的。 我想只給它充氣一次,對20個項目使用相同的視圖,我只想更改UI中的可見數據。

LinearLayout ll = new LinearLayout(context); 
for (int i = 0; i < 20; ++i) {
    View itemView = inflater.inflate(getLayoutId(), parent, false);
    itemView.setText(data.getName(i);
    ll.add(itemView);
}

我想要這樣的東西。

LinearLayout ll = new LinearLayout(context); 
View itemView = inflater.inflate(getLayoutId(), parent, false);
for (int i = 0; i < 20; ++i) {
    itemView.setText(data.getName(i);
    ll.add(itemView);
}

但我無法以這種方式使用itemView obj。

任何人都可以告訴我如何在充氣后多次使用該視圖。

你不能這樣做。 如果您認為其成本高昂,那么找到另一種方法來創建您的布局。

但請考慮使用gridViews。 他們創造了大量的觀點並展示它們,並且效果很好。

您不能將視圖的同一對象添加2次到布局。 每個對象都有自己的狀態,在你的情況下,你會在所有20個視圖之間分享狀態,這是沒有意義的,這意味着更改一個textView上的文本將在所有其他部分改變它。 。

只需誇大20個單獨的視圖並適當填充它們。

還可以考慮使用ListView或GridView,如果你真的有完全相同的視圖,它可以提供一些很好的功能,如視圖回收。

你應該使用ViewHolder patern:

http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder

它應該做你想要的所有事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM