6

Tôi cần phải đồng bộ hóa hai ViewPager với nhau. Yêu cầu này giống như khi cuộn ViewPager-1 và ViewPager-2 cũng phải cuộn theo số lượng nhất định. Hình ảnh hiển thị bên dưới sẽ làm cho bạn rõ ràng hơn với câu hỏi của tôi.Điều khiển hai ViewPager cùng nhau

enter image description here

Bạn cũng có thể giúp tôi với một số liên kết hướng dẫn. Cảm ơn.

Trả lời

2

Bạn có thể mở rộng ViewPager để tạo ra một giao diện tùy chỉnh và ghi đè onTouchEvent() theo cách sau:

 @Override 
     public boolean onTouchEvent(MotionEvent event) { 

      if(mDependentView != null){ 
      mDependentView.onTouchEvent(event); 
      } 
      return super.onTouchEvent(event); 
     } 

Cũng tạo một setter bên trong lớp tùy chỉnh của bạn để thiết lập các dependentView

public void setDependentView(View view){ 
    mDependentView = view; 
} 

Sau đó, bạn nên đặt chế độ xem thứ hai làm chế độ xem phụ thuộc của người xem đầu tiên trong hoạt động của bạn.

13

Tôi nghĩ rằng đây là những gì bạn cần:

 viewpager1.setOnTouchListener(new OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       viewpager2.onTouchEvent(event); 
       return false; 
      } 
     }); 

     viewpager2.setOnTouchListener(new OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       viewpager1.onTouchEvent(event); 
       return false; 
      } 
     }); 

Tôi có một vấn đề tương tự, nhưng đầu tiên tôi cố gắng sử dụng phương pháp fakeDragBy, đó là ngõ cụt. (nếu bạn có nhiều hơn hai trang)

+0

giải pháp rất tốt và hiệu quả. Cảm ơn bạn! –

+1

Sử dụng kỹ thuật này, tôi gặp sự cố nếu bạn đồng thời chạm vào cả hai lần xem trang. Tôi đã kết thúc bằng cách sử dụng cách tiếp cận ở đây để thay thế: https://stackoverflow.com/a/26513243/369480 – gnuf

Các vấn đề liên quan