android Adapter如何删除并重新创建视图?

时间:2013-11-14 20:53:38

标签: android listview scrollview android-linearlayout recycle

我知道如何填充ListView或任何其他列表类型,但现在我面临一个问题,我应该在ScrollView中实现ListView。所以,我决定使用LinearLayout(myLinearLayout.addView( adapter.getView(position, null, null))。如您所见,我正在从适配器检索数据并将其添加为我的LinearLayout的新视图。一切正常,但如果列表中填充了30多行,应用程序就会冻结。每行包含一个ImageView,这样虚拟机就无法分配足够的内存。

我应该如何回收linearlayout行?

2 个答案:

答案 0 :(得分:0)

将listview放在scrollview中似乎不是一个好主意。您的用户将如何使用它?哪个手势会滚动滚动视图,哪个会滚动列表视图?它不可用。

Android组件设计得很好,您应该考虑坚持列表视图,每个人都知道如何使用并且非常优化。

如果您在列表中显示许多图片时遇到问题,请参阅this docs from google

答案 1 :(得分:0)

将行填充到线性布局后,视图不会被适配器回收。正如你所写,它也不可能在另一个内部滚动组件。为什么需要在滚动内显示列表?您是否考虑过填写清单"排在首位"滚动视图?例如,在一个不同的片段?