我有一个由 ArrayAdapter 填充的 ListView:
someListView.setAdapter(适配器);
适配器中的每个元素都使用相同的 layout.xml 进行扩充。现在我想将不同类型的元素(使用不同的布局文件扩充)添加到 ListView 的开头。
我想要实现的是,在 ListView 中的所有其他元素之上有一个特殊元素,而且还随列表滚动(如果用户向下滚动,则从顶部退出屏幕)。
我已尝试将新元素添加到数组中,但它是不同的类型,因此无法正常工作。
我试图在数组的位置 0 处插入一个虚拟元素,并修改适配器的 getView()
以便 if (position == 0) return myUniqueView
,但这以某种方式搞砸了整个 ListView :项目未显示、内容到处跳跃、元素之间存在巨大间隙等。
我开始考虑实现我想要的最佳实践,而不是通过编辑数组适配器。但我不知道如何正确地做到这一点。
最佳答案
您不需要任何特别的东西来完成您的要求。 Android 已经为每个 ListView 提供了内置的行为。只需调用:
mListView.addHeaderView(viewToAdd);
就是这样。
关于android - 向 ArrayAdapter/ListView 添加不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258431/