ListView addHeaderView() 之後item位置不對

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

發佈了33 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章