4
我有兩個ListViews。當我滾動任何一個列表時,是否有任何方法來同步ListView的位置同步兩個ListView位置
我有兩個ListViews。當我滾動任何一個列表時,是否有任何方法來同步ListView的位置同步兩個ListView位置
實現一個AbsListView.OnScrollListener,註冊到ListView。當滾動ListView時,OnScrollListener的onScroll()方法將被觸發,然後在另一個ListView上調用smoothScrollToPosition()以同步到同一位置。
我們這樣做,它對我們很好。
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);
}
}
});
謝謝你的回覆。我將處理 – 2010-11-25 09:41:28
當您調用smoothScrollToPosition時,您需要一種避免第二個listView發出onScrolled的方法。 – 2011-09-12 14:31:17