2012-09-01 27 views
5

Làm cách nào để ngăn chế độ xem của người xem chỉ cuộn theo một hướng. Ví dụ: chỉ cho phép vuốt sang phải, nhưng không cho phép vuốt sang trái. Tôi hoàn toàn bị mắc kẹt, bất kỳ trợ giúp sẽ được đánh giá rất nhiều. Để lưu ý rằng tôi cần phải làm điều này để làm việc cho Android phiên bản 2.2, vì vậy tôi đang sử dụng thư viện tương thích cho ViewPager.Dừng xem trang theo một hướng nhất định

Cảm ơn trước

Trả lời

6

Bạn sẽ phải thực hiện ViewPager của riêng bạn mà mở rộng ViewPager gốc và ghi đè lên các phương pháp onTouchEvent

public class CustomViewPager extends ViewPager { 

    float lastX = 0; 

    boolean lockScroll = false; 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomViewPager(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 

     switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      lastX = ev.getX(); 
      lockScroll = false; 
      return super.onTouchEvent(ev); 
     case MotionEvent.ACTION_MOVE: 

      if (lastX > ev.getX()) { 
       lockScroll = false; 
      } else { 
       lockScroll = true; 
      } 

      lastX = ev.getX(); 
      break; 
     } 

     lastX = ev.getX(); 

     if(lockScroll) { 
      return false; 
     } else { 
      return super.onTouchEvent(ev); 
     } 

    } 



} 
+0

Hi Ali - không may, điều này không làm việc. Tôi thậm chí đã thử sự kiện onTouchEvent, nhưng than ôi, không có niềm vui. –

+0

Bí quyết khác, khi bạn cuộn đến chế độ xem tiếp theo, hãy xóa chế độ xem đầu tiên. Tôi sẽ cập nhật sau vài phút. –

+1

Tôi đã cập nhật câu trả lời của mình, tôi đã thử nghiệm mã mới và nó đã hoạt động. –

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