ListView addHeaderView() 之后item位置不对 ,headerView的position为0,listView.setOnItemClickListener(),item点击事件position会不正常
首先,隐藏与显示headerView(必须在ListView.setAdapter()之前调用ListView.addHeaderView())
if (mVideoList.size() > 0) {
mListView.removeHeaderView(headerView);
mListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
} else {
mListView.addHeaderView(headerView);
mListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
然后在BaseAdapter adapter 里设置getitemId返回position
@Override
public long getItemId(int position) {
return position;
}
最后 实现下面的代码我们将得到的itemId 作为position来使用,此时的position就正常了
ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int itemId = (int) parent.getAdapter().getItemId(position);
Been been = mList.get(itemId);
}