2010-11-25 3 views

答えて

2

AbsListView.OnScrollListenerを実装し、ListViewに登録します。 ListViewをスクロールすると、OnScrollListenerのonScroll()メソッドがトリガーされ、別のListViewでsmoothScrollToPosition()を呼び出して同じ位置に同期させます。

+0

は応答をありがとう。私はその上で動作します –

+0

smoothScrollToPositionを呼び出すときにonSchedledを発行するには、2番目のlistViewを避ける方法が必要です。 –

+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'が常にゼロであることを発見しています。 –

関連する問題