listView在開發中使用的太多了,但是不少知識還是經常記不住,因今天把listView的一些方法和開發問題,統一整理記錄下來。
一、方法或屬性
1.stackFromBottom屬性:true表示從列表底部開始向上排列。但要注意它是從上往下遞增,新數據處在底部。
2.setTranscriptMode:設置數據更新時,滑動模式。有三個值:
alwaysScroll:更新,總是滾到最底部
disabled:滿頁後更新,不滾動
normal:最後一個item可見,更新時滾到最底部,否則不滾動。
3.setSelectFromTop(position,y)與setSelection(position)
(1)setSelectFromTop(position,y):精準定位,y表示選擇的item到listView可見範圍內最上邊邊緣的距離。
(2)setSelection(position):內部也調用了setSelectFromTop,但是y軸偏移量爲0,可以做到定位,但是解決不了某一個item部分不可見的情況。
例:在做IM聊天頁面的下拉刷新時,刷新成功後(有數據),需要把listView向上移動一個位置,以便讓用戶看到最新刷出來的數據,同時注意headView,設置偏移量。
二、注意事項:
1.多Item類型時異常:數組下標越界
解決:adapter的回調方法:getItemViewType(position)中,返回的值必須從0開始,依次增大,否則異常。
2.列表中checkBox滑動後狀態混亂
解決:getView方法中先設置checkBox.setTag(index),將複選框與position關聯,選中時通過getTag()方法獲取當前複選框對應的位置。