以下代码将同一视图膨胀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。
任何人都可以告诉我如何在充气后多次使用该视图。
答案 0 :(得分:0)
你做不到。如果您认为它的成本很高,那么可以找到另一种方法来创建您的布局。
但请考虑使用gridViews。他们创造了大量的观点并展示它们,并且效果很好。
您无法将2次视图的同一对象添加到布局中。每个对象都有自己的状态,在你的情况下,你会在所有20个视图之间分享状态,这是没有意义的,这意味着更改一个textView上的文本将在所有其他部分改变它。
只需夸大20个单独的视图并适当填充它们。
另外考虑使用ListView或GridView,如果你真的有完全相同的视图,它可以提供一些很好的功能,如视图回收。
答案 1 :(得分:-1)
你应该使用ViewHolder patern:
http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder
它应该做你想要的所有事情