一腮鞍、常用技巧
①使用ViewHolder模式提高效率:
原因:ViewHolder模式充分利用ListView的視圖緩存機(jī)制弛房,避免了每次在調(diào)用getView()的時(shí)候都去通過findViewById()實(shí)例化控件道盏。
②設(shè)置項(xiàng)目間分割線:
分割線的顏色和高度
③隱藏ListView的滾動(dòng)條(默認(rèn)在ListView滾動(dòng)時(shí),在右邊會(huì)顯示滾動(dòng)條):
隱藏滾動(dòng)條
④取消ListView的item默認(rèn)的點(diǎn)擊效果:
取消點(diǎn)擊效果
Android自帶透明色
⑤指定具體顯示的Item及平滑移動(dòng):
指定具體顯示的Item
平滑移動(dòng)
⑥處理空ListView:
代碼
布局
⑦遍歷ListView中所有的Item:
獲取代碼
⑧ListView滑動(dòng)監(jiān)聽(方式:OnTouchListener、OnScrollListener):
a:OnTouchListener是View中的監(jiān)聽事件牺堰,通過監(jiān)聽ACTION_DOWM拄轻、ACTION_MOVE、ACTION_UP這三個(gè)事件發(fā)生的坐標(biāo)來判斷用戶滑動(dòng)的方向恨搓。
使用代碼
b:OnScrollListener是AbsListView中的監(jiān)聽事件院促,其封裝了許多與ListView相關(guān)的信息。
兩個(gè)回調(diào)的使用方法
解釋一下OnScroll()方法中三個(gè)參數(shù):
參數(shù)一(firstVisibleItem):當(dāng)前能看到的第一個(gè)Item的ID斧抱。(包括未顯示完全的Item)
參數(shù)二(visibleItemCount):當(dāng)前能看到的Item總數(shù)常拓。(包括未顯示完全的Item)
參數(shù)三(totalItemCount):整個(gè)ListView的Item總數(shù)。
通過這三個(gè)參數(shù)辉浦,可以進(jìn)行一些判斷弄抬,比如:
判斷滾動(dòng)的方向
判斷是否滾動(dòng)到最后一行
二、常用擴(kuò)展(聊天ListView):
效果圖
準(zhǔn)備工作:⑴兩個(gè)布局(chat_item_in和chat_item_out)宪郊,布局幾乎是一致的掂恕,只是換一下方向。所以這里只給其中一個(gè)布局弛槐。
chat_item_in布局
⑵封裝一個(gè)ChatBean懊亡,里面參數(shù):int type、String text乎串、Bitmap icon店枣。
準(zhǔn)備好了,就開始最重要的Adapter了叹誉,在這個(gè)Adapter中繼承了BaseAdapter,并在getView()方法中畸形了布局的判斷鸯两,從而確定使用哪種布局。這里就給出最主要的代碼:
getView()方法代碼
最后是MainActivity:
MainActivity代碼