我有两个ListView。当我滚动任何一个列表
时,有没有办法同步ListViews的位置答案 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);
}
}
});