ListView 滚动停靠

来源:互联网 发布:网络销售合作协议 编辑:程序博客网 时间:2024/04/29 12:16
mListView.setOnScrollListener(new AbsListView.OnScrollListener() {   @Override   public void onScrollStateChanged(AbsListView view, int scrollState) {      // TODO 自动生成的方法存根              /*               * 第一是静止状态,SCROLL_STATE_IDLE               * 第二是手指滚动状态,SCROLL_STATE_TOUCH_SCROLL               * 第三是手指不动了,但是屏幕还在滚动状态。SCROLL_STATE_FLING               */      if (scrollState == SCROLL_STATE_IDLE) {         int[] lvDateLocation=new int[2];         mListView.getLocationInWindow(lvDateLocation);         View view0 = view.getChildAt(0);//在listview中,第一个显示的item         View view1 = view.getChildAt(1);//         int[] view0Location = new int[2];         int[] view1Location = new int[2];         view0.getLocationInWindow(view0Location);         view1.getLocationInWindow(view1Location);         int move0 = view0Location[1] - lvDateLocation[1];         int move1 = view1Location[1] - lvDateLocation[1];         //判断前后两个view谁近目标         if (Math.abs(move0) < Math.abs(move1)) {            mListView.smoothScrollBy(move0, 0);            //setSelectDate(position);         } else {            mListView.smoothScrollBy(move1, 0);            //setSelectDate(position+1);         }      }   }   @Override   public void onScroll(AbsListView absListView, int i, int i1, int i2) {   }});
0 0
原创粉丝点击