List加入headView后点击position错乱有关问题

2016-01-16  本文已影响848人  WiiHuu

添加headview会换adapter

1.从源码中可以分析得到,addHeaderView(View v, Object data, boolean isSelectable)方法

@Override public void setAdapter(ListAdapter adapter) { if (null !=   mAdapter) {       mAdapter.unregisterDataSetObserver(mDataSetObserver); } resetList(); mRecycler.clear(); if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) { mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos,     adapter); } else { mAdapter = adapter; } //其它的一些代码这里省略之... }

可修正
@Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
doSomething(parent.getAdapter().getItem(position)); }

手动修正

page=channel&keyword=listView).getHeaderViewsCount;//得到header的总数量 //得到新的修正后的position int newPosition = position - headerViewsCount。
可参考这篇文章

上一篇 下一篇

猜你喜欢

热点阅读