[英]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.