2010-11-25 8 views

답변

2

AbsListView.OnScrollListener을 구현하고 ListView에 등록하십시오. ListView를 스크롤하면 OnScrollListener의 onScroll() 메서드가 트리거되고 다른 ListView에서 smoothScrollToPosition()을 호출하면 같은 위치로 동기화됩니다.

+0

감사합니다. 나는 그것에 대해 작업 할 것입니다 –

+0

smoothScrollToPosition을 호출 할 때 두 번째 listView가 onscrolled로 발행되는 것을 피하는 방법이 필요합니다. –

+3

하지만 지연은 .... – arkmetal

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

거의 다 왔지만 'r.top'이 항상 0이라는 것을 알았습니다. –

관련 문제