ListView有Header时的position情况

首先addHeaderView必须得在setAdapter之前被调用。

在OnItemClickListener的public void onItemClick(AdapterView<?> parent, View view, int position,long id) 方法中,position是从header开始计算的包括了header的数量。要获得除去header后的正确位置应该怎么做呢?

方法1,position减去 listView.getHeaderViewsCount().例如我想得到listview中可视的第一条item的在数据中索引,就用getFirstVisiblePosition()- getHeaderViewsCount();

方法2,在onItemClick不要直接使用我们声明的adapter,而是用ListView里的那个decorated adapter。获取它的方法就是调用parent.getAdapter()

http://blog.csdn.net/faithmy509/article/details/11521903


如果 listview 调用了一次 addHeaderView,则

listView.getFirstVisiblePosition();

listView.getLastVisiblePosition();

listView.getChildAt(pos);

会以 headerView 为第0个view,item 的 pos会从1开始。


你可能感兴趣的:(ListView有Header时的position情况)