Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中重用膨胀视图_Android_Android Layout - Fatal编程技术网

在android中重用膨胀视图

在android中重用膨胀视图,android,android-layout,Android,Android Layout,下面的代码将同一视图膨胀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)

下面的代码将同一视图膨胀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=新的LinearLayout(上下文);
对于(int i=0;i<20;++i){
View itemView=inflater.inflate(getLayoutId(),父项,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);
}
LinearLayout ll=新的LinearLayout(上下文);
View itemView=inflater.inflate(getLayoutId(),父项,false);
对于(int i=0;i<20;++i){
itemView.setText(data.getName(i));
ll.add(itemView);
}
但是我不能这样使用itemView obj


有谁能告诉我,一旦视图膨胀,如何多次使用它。

你不能这样做。如果你认为它很昂贵,那就找另一种方法来创建布局

但是考虑GRIDVIEW。它们创建了大量的视图并显示它们,而且效果很好。

您不能将同一个视图对象添加到布局中两次。每个对象都有自己的状态,在您的情况下,在某种程度上说,您将在所有20个视图之间共享该状态,这是没有意义的,这意味着更改一个textView上的文本将更改所有其他视图上的文本

只需将20个不同的视图充气并适当填充即可


也可以考虑使用ListVIEW或GRIDVIEW,如果你有完全相同的视图,它可以提供一些很好的特性,比如视图循环。

你应该使用VeWHOVED PARTURN:


它应该可以做你想要的所有事情

如果你的版面中只有一个文本视图,那么你可以通过编程创建文本视图。你正在使用同一个xml创建20个不同的视图。如果你需要20个视图,则不可能创建少于20个视图。例如,文本视图我给出了一个例子,我没有更多视图。我想将这20个视图添加到水平滚动vie中w、 列表视图有一个适配器,该适配器将提供可重用的转换视图。水平滚动视图是否也有任何适配器将提供数据。?Viewholder不克隆视图。在添加到layoutviewholder之前,编写代码克隆视图只是使用ListView的一种模式,原始问题表明ListView不是一个选项