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);
}