同步两个ListView位置

时间:2010-11-25 08:57:45

标签: android

我有两个ListView。当我滚动任何一个列表

时,有没有办法同步ListViews的位置

2 个答案:

答案 0 :(得分:2)

实现AbsListView.OnScrollListener,注册ListView。滚动ListView时,将触发OnScrollListener的onScroll()方法,然后在另一个ListView上调用smoothScrollToPosition()以同步到同一位置。

答案 1 :(得分:1)

我们这样做了,对我们来说效果很好。

listOne.setOnTouchListener(new OnTouchListener() {
    @Override
       public boolean onTouch(View arg0, MotionEvent arg1) {
       listTwo.dispatchTouchEvent(arg1);
       return false;
    }
});
listOne.setOnScrollListener(new OnScrollListener() {
   @Override
   public void onScrollStateChanged(AbsListView arg0, int arg1) {
   }
   @Override
   public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
          if (l1.getChildAt(0) != null) {
              Rect r = new Rect();
              l1.getChildVisibleRect(l1.getChildAt(0), r, null);
              l2.setSelectionFromTop(l1.getFirstVisiblePosition(), r.top);
          }
    }
});