2010-11-25 117 views

回答

2

實現一個AbsListView.OnScrollListener,註冊到ListView。當滾動ListView時,OnScrollListener的onScroll()方法將被觸發,然後在另一個ListView上調用smoothScrollToPosition()以同步到同一位置。

+0

謝謝你的回覆。我將處理 – 2010-11-25 09:41:28

+0

當您調用smoothScrollToPosition時,您需要一種避免第二個listView發出onScrolled的方法。 – 2011-09-12 14:31:17

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); 
      } 
    } 
});