android開發之Listview的使用技巧

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


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