ListView标题占据一个位置有充分的理由吗?

And*_*rew 8 android listview header cursor

我刚刚在ListView中添加了一个标题,我不得不更改一堆代码,因为标题基本上变为位置0(意味着我的CursorAdapter的Cursor索引与列表的标记不对齐.它们关闭了1现在).为什么?这对我来说似乎有点傻.

我能想出的唯一原因是开发人员可能想要访问标题.精细.提供类似getListView().getHeader()的东西.

may*_*din 22

由于某种原因,position(from onItemClick)与ListView(不是适配器)中的项目数量相关联,包括页眉和页脚.设置时,OnItemClickListener应通过调用listView.getItemAtPosition(position)而不是检索单击的项目adapter.getItem(position).

实际上,您应该始终使用getItemAtPosition,因为如果您的ListView页眉和页脚有这种方式并不重要,并且如果添加新标题,则无需更改代码.

如果您不希望您的标题可选,您应该以这种方式添加它:listView.addHeaderView(headerView, null, false).


Jul*_*ian 1

我相信 aListView无非是一个View元素列表。如果您向 中添加页眉(或页脚,它应该没有任何区别)ListView,则该元素基本上与通过ListAdapter. 唯一的细微差别是页眉(和页脚)元素将被固定,并且不受ListAdapter列表所做操作的影响 - 但它们仍然只是普通元素。