羣英傳 之listview 一

1、設置viewHolder

2、item之間分割線

 android:divider="@color/colorAccent"  
            android:dividerHeight="2dp"

3、去掉分割線

 android:divider="@null"  

把分割線設置爲透明

4、隱藏滾動條

 android:scrollbars="none"

5、取消item的點擊效果

 android:listSelector="#00000000"

6、顯示指定的item

listView.setSelection(1);

以上是沒有任何過渡直接完成

平滑過渡如下:

		 listView.smoothScrollByOffset(3);
        listView.smoothScrollToPosition(2);
        listView.smoothScrollBy(2,1);

7、遍歷listview中所有子view

 
        for (int i=0;i<listView.getChildCount();i++){
            View view=listView.getChildAt(i);
        }

8、處理空listview

	    listView = findViewById(R.id.my_list_view);
        listView.setEmptyView(findViewById(R.id.empty_view));

9、listview的滑動監聽

A:觸摸監聽

  listView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_DOWN://觸摸時觸發
                        break;
                    case MotionEvent.ACTION_MOVE://移動時觸發
                        break;
                    case MotionEvent.ACTION_UP://離開時觸發
                        break;
                }
                
                return false;
            }
        });

B:滑動監聽


        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int scrollState) {
                switch (scrollState){
                    case SCROLL_STATE_TOUCH_SCROLL: // 手指接觸狀態
                        break;
                        case SCROLL_STATE_IDLE: //滑動停止
                        break;
                        case SCROLL_STATE_FLING: //屏幕處於滑動狀態
                        break;

                }
//                scrollState = SCROLL_STATE_TOUCH_SCROLL(1):表示正在滾動。當屏幕滾動且用戶使用的觸碰或手指還在屏幕上時爲1
//                scrollState =SCROLL_STATE_FLING(2) :表示手指做了拋的動作(手指離開屏幕前,用力滑了一下,屏幕產生慣性滑動)。
//                crollState =SCROLL_STATE_IDLE(0) :表示屏幕已停止。屏幕停止滾動時爲0。
            }

            //監聽屏幕滑動,並記錄當前頁面item顯示情況
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
//1、 firstVisibleItem:當前窗口中能看見的第一個列表項ID(從0開始)關於這個參數的詳細理解可參考這裏 
//2、 visibleItemCount:當前窗口中能看見的列表項的個數(小半個也算) 
//3、 totalItemCount:列表項的總數
            }
        });

獲取可視區域內最後一個和第一個item的id

  listView.getLastVisiblePosition();
   listView.getFirstVisiblePosition();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章