Harikrishnan R
Harikrishnan R

Reputation: 1454

Synchronize two ListView positions

I have two ListViews. Is there any way to synchronize the position of ListViews when I scroll any one of the Lists

Upvotes: 4

Views: 3818

Answers (2)

bhasker_kottapally
bhasker_kottapally

Reputation: 181

We did this and it worked well for us.

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

Upvotes: 1

aleung
aleung

Reputation: 10298

Implement an AbsListView.OnScrollListener, register to the ListView. When the ListView is scrolled, the onScroll() method of OnScrollListener will be triggered, then call smoothScrollToPosition() on another ListView to synchronize to the same position.

Upvotes: 2

Related Questions