android - 阵列适配器是否必须使用?
android - is array adapter compulsory to use?
上下文:
Android开发
问题:
出于 performance/efficiency 原因,是否绝对需要使用数组适配器?
我不能使用 for loop
并自己将视图添加到父级吗?
final View v = inflater.inflate(R.layout.first_fragment, container, false);
LinearLayout sub = (LinearLayout) v.findViewById(R.id.add_me);
LinearLayout vir = (LinearLayout) inflater.inflate(R.layout.vir, sub, false);
// get data from singleton; All the arrays have the same length
for(int x = 0, l = aSingletonArrayLength; x < l; x++){
//find the ids in vir and populate them
sub.addView(vir);
}
是的,因为阵列适配器在任何时候都只创建最大数量的可见视图。
如果您的屏幕只能显示您的 4 个视图,则只会创建 4 个视图。您的观点将被回收并在未来的新内容中重复使用。
如果您创建自己的视图,对于 4 个元素您将看不出差异,但是如果您使用 1000 个元素中的 100 个,您将创建 1000 个视图而不是 4 个
上下文:
Android开发
问题:
出于 performance/efficiency 原因,是否绝对需要使用数组适配器?
我不能使用 for loop
并自己将视图添加到父级吗?
final View v = inflater.inflate(R.layout.first_fragment, container, false);
LinearLayout sub = (LinearLayout) v.findViewById(R.id.add_me);
LinearLayout vir = (LinearLayout) inflater.inflate(R.layout.vir, sub, false);
// get data from singleton; All the arrays have the same length
for(int x = 0, l = aSingletonArrayLength; x < l; x++){
//find the ids in vir and populate them
sub.addView(vir);
}
是的,因为阵列适配器在任何时候都只创建最大数量的可见视图。
如果您的屏幕只能显示您的 4 个视图,则只会创建 4 个视图。您的观点将被回收并在未来的新内容中重复使用。
如果您创建自己的视图,对于 4 个元素您将看不出差异,但是如果您使用 1000 个元素中的 100 个,您将创建 1000 个视图而不是 4 个