Listview的使用技巧總結
1.修改ListView默認滑動條的樣式非常簡單,只需要添加一個xml屬性即可:
<span style="font-family:Courier New;font-size:12px;"><span style="font-size:14px;">android:scrollbarThumbVertical="@drawable/scroll_vertical_thumb"</span></span>
2.ViewHolder的作用
就是一個持有者的類,他裏面一般沒有方法,只有屬性,作用就是一個臨時的儲存器,把你getView方法中每次返回的View存起來,可以下次再用。
這樣做的好處就是不必每次都到佈局文件中去拿到你的View,提高了效率,一般在adapter中使用
3.ListView.getCount()與ListView.getChildCount()的區別
ListView.getCount()方法;實際上是AdapterView.getCount(),返回的是其Adapter.getCount()返回的值.也就是”所包含的Item總個數”.
ListView.getChildCount();實際上是ViewGroup.getChildCount(),返回的是顯示層面上的”所包含的子View個數”.
是當item少不需要滑動時,兩者相同。當item多,需要滑動時,ListView.getCount()多於ListView.getChildCount()
4.ListView.setOnScrollListener()參數詳解
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
/**
firstVisibleItem表示在現時屏幕第一個ListItem(部分顯示的ListItem也算)在整個ListView的位置(下標從0開始)
**/
Log.i("firstVisibleItem", String.valueOf(firstVisibleItem));
/**
visibleItemCount表示在現時屏幕可以見到的ListItem(部分顯示的ListItem也算)總數
**/
Log.i("visibleItemCount", String.valueOf(visibleItemCount));
/**
totalItemCount表示ListView的ListItem總數
**/
Log.i("totalItemCount", String.valueOf(totalItemCount));
/**
listView.getFirstVisiblePosition()表示在現時屏幕第一個ListItem(第一個ListItem部分顯示也算)在整個ListView的位置(下標從0開始)
**/
Log.i("firstPosition", String.valueOf(listView.getFirstVisiblePosition()));
/**
listView.getLastVisiblePosition()表示在現時屏幕最後一個ListItem(最後ListItem要完全顯示出來纔算)在整個ListView的位置(下標從0開始)
**/
Log.i("lasPosition", String.valueOf(listView.getLastVisiblePosition()));
}
});
轉載:http://blog.csdn.net/zanelove/article/details/43735085
5.ListView 去除邊緣陰影、選中色、拖動、底部上拉、頂部下拉背景色等
去除下滑到底部,上拉時出現的藍色區域
android:overScrollMode="never"
去除ListView滑到頂部和底部時邊緣的黑色陰影:
android:fadingEdge="none"
去除拖動時默認的黑色背景:
android:cacheColorHint="#00000000"
去除選中時的黃色底色:
android:listSelector="#00000000"
去除行與行之間的黑線:
list.setDivider(null);
ListView刷新後自動滾到最底部:
list.setSelection(msgList.getAdapter().getCount()-1);
6.listview滾到指定位置
private void setListViewPos(int pos) {
if (android.os.Build.VERSION.SDK_INT >= 8) {
mListView.smoothScrollToPosition(pos);
} else {
mListView.setSelection(pos);
}
}
如果是要置回到頭部,就傳入0;如果是滾動到最後一個,就傳入mListView.getCount() - 1。補一點,記得設置mListView.setSelected(true)
轉載:http://blog.csdn.net/xyz_fly/article/details/9246709