android - 向 ArrayAdapter/ListView 添加不同的元素

标签 android android-listview

我有一个由 ArrayAdapter 填充的 ListView:

someListView.setAdapter(适配器);

适配器中的每个元素都使用相同的 layout.xml 进行扩充。现在我想将不同类型的元素(使用不同的布局文件扩充)添加到 ListView 的开头。

我想要实现的是,在 ListView 中的所有其他元素之上有一个特殊元素,而且还随列表滚动(如果用户向下滚动,则从顶部退出屏幕)。

我已尝试将新元素添加到数组中,但它是不同的类型,因此无法正常工作。

我试图在数组的位置 0 处插入一个虚拟元素,并修改适配器的 getView() 以便 if (position == 0) return myUniqueView,但这以某种方式搞砸了整个 ListView :项目未显示、内容到处跳跃、元素之间存在巨大间隙等。

我开始考虑实现我想要的最佳实践,而不是通过编辑数组适配器。但我不知道如何正确地做到这一点。

最佳答案

您不需要任何特别的东西来完成您的要求。 Android 已经为每个 ListView 提供了内置的行为。只需调用:

mListView.addHeaderView(viewToAdd);

就是这样。

ListView Headers API
Tutorial

关于android - 向 ArrayAdapter/ListView 添加不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258431/

相关文章:

java - Android .setmesage 带有下标或上标文本

android - Android 的 Spring

java - 如何将 base64 字符串转换为 blob?

java - android listview 也在迭代页脚菜单

android - notifydataSetChanged更新ListView,必须要用runOnUiThread?

java - 删除线文本ListView找不到符号方法

android - 在 ViewPager 中旋转后选项卡内容消失

java - 在 android 中使用复选框在 ListView 中显示 toast 消息

android - BaseAdapter 选择项和处理问题

android - 在 fragment 中单击按钮后填充 ListView