假设我有一个像这样的项目列表:
List<User> mPersonList=getAllUser();
然后我想在活动中展示它们,我有两个想法:
1使用ListView
我将创建一个从ArrayAdapter
扩展的自定义适配器,以将数据绑定到视图。这是一般的想法。
但有时,ListView
的父级可能(必须)是ScrollView
,因此有人suggest me使用Linearlayout
。
2使用类似LinearLayout
。
为每个项目创建一个LinearLayout
,并将它们添加到父视图中。
例如:
ViewGroup parent=(ViewGroup)findViewById(R.id.xx):
for(Person p : mPersonList){
LinearLayout ll=new LinearLayout(...) //created by constructor
// or ll=mlayerInflate.inflate(R.layout.xxx);
TextView tv=new TextView(..)
tv.setText(p.name);
ll.addView(tv);
parent.addView(ll);
}
我想知道在考虑性能时哪个更好?
答案 0 :(得分:0)
ListView
的效果要好于在LinearLayout
中实现相同效果。
ListView
只会在任何时候为屏幕上显示的视图数量增加。膨胀视图比更改视图的值要昂贵得多,所以这要好得多。
编辑:
但是,如果您将ListView
放在ScrollView
内,它是不对的。在这种情况下,您可能应该使用LinearLayout
,或者可能重新设置您的布局,以便您不使用ScrollView
父级(例如使用ListView
标题视图等)< / p>