listview常用的优化技巧

     
  ListView在平时的开发中无处不见,今天就对本人平时开发遇到的一些问题做一个简单的总结:
  1: 设置项目间的分割线:
            android:divider="@android:color/darker_gray"
            android:dividerHeight="1dp"
  2:隐藏listview的滚动条
            android:scrollbars="none"
  3:  取消listview的Item的点击效果
            android:listSelector="#00000000" 即设置透明色即可
  4:设置Item点击之后赋予颜色:先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
            在ListView的OnItemClickListener里边,将当前选中的item执行setSelected(true)
  5: 设置listView 需要显示在第几页
            listView.setSelection(N); N就是需要显示的第N个Item.
  6: 动态修改ListView
            mData.add("new");
            mAdapter.notifyDataSetChanged();
  7:遍历listView中的所有Item
            for(int i=0;i
                  View view =mListView.getChildAt(i);
            }
    8:处理空的ListView
            当listView没有数据展示时, listview 提供了一个方法--setEmptyView()
                  listView.setEmptyView(findViewById(R.id.**));
    9:listView的重点来了:滑动监听
            (1:OnTouchListener: 通过监听三个事件的发生
                  switch(event.gerAction()){
                        caseMotionEvent.ACTION_DOWN;
                              //触摸时的操作
                              break;
                        caseMotionEvent.ACTION_MOVE;
                              //移动时的操作
                              break;
                        caseMotionEvent.ACTION_UP;
                              //离开时的操作
                              break;
                  }
            (2:OnScrollListener
                  mlistview.setOnScrollLister(new OnScrollLister()){
                        public voidonScrollStateChanged(AbsListView view, int scrollState){
                              switch(scrollState){
                                    caseOnscrollListener.SCROLL_STATE_IDLE;
                                          //滑动停止时:
                                          break;
                                    caseOnscrollListener.SCROLL_STATE_TOUCH_SCROLL;
                                          //正在滚动
                                          break;
                                    caseOnscrollListener.SCROLL_STATE_FLING;
                                          //手指抛开时既手指用力滑动
                                          //在离开后listView由于惯性继续滚动
                                          break;
                              }
                        }
     
                  }
                            @Override
                  public voidonScroll(AbListView view,int fistVisibleItem, int visibleItemCount,int      totallItemCount){
                        //ListView滚动时一直调用
                  }
      ListView可以具有弹性就像Iphone手机那样:具体的实现过程查看overScrollBy()方法                           

你可能感兴趣的:(listview常用的优化技巧)