2012-06-13 37 views
13

trước hết là xin lỗi vì tiếng anh xấu của tôi.Tắt các cử chỉ trong PagerAdapter/ViewPager

Tôi đã làm việc PagerAdapter với 3 Views. Nó hoạt động tốt. Tôi có thể chuyển qua các Chế độ xem với cử chỉ bình thường VÀ với Buttonclicks. Nhưng tôi muốn vô hiệu hóa các cử chỉ. Có thể chuyển qua Chế độ xem chỉ bằng buttonClicks và tắt các cử chỉ không?

đây là PagerAdapter:

public class MyPagerAdapter extends PagerAdapter { 


     public int getCount() { 
      return 3; 
     } 

     public Object instantiateItem(View collection, int position) { 

      LayoutInflater inflater = (LayoutInflater) collection.getContext() 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      int resId = 0; 
      switch (position) { 
      case 0: 
       resId = R.layout.back; 
       break; 
      case 1: 
       resId = R.layout.stock; 
       break; 
      case 2: 
       resId = R.layout.menu; 
       break; 
      } 

      View view = inflater.inflate(resId, null); 

      ((ViewPager) collection).addView(view, 0); 

      return view; 
     } 

     @Override 
     public void destroyItem(View arg0, int arg1, Object arg2) { 
      ((ViewPager) arg0).removeView((View) arg2); 

     } 

     @Override 
     public boolean isViewFromObject(View arg0, Object arg1) { 
      return arg0 == ((View) arg1); 

     } 

     @Override 
     public Parcelable saveState() { 
      return null; 
     } 
    } 

SOLVED:

final View touchView = findViewById(R.id.remotePager); 
    touchView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      return true; 
     } 
    }); 

Trả lời

9

Override các onTouchListener() và trả về false để vô hiệu hóa phân trang trên swipe.

public boolean onTouchEvent(android.view.MotionEvent ev) { 
     if (super.onTouchEvent(ev)) { 
      return false; 
     } 
} 
+3

cảm ơn, giải quyết nó theo cách này: \t \t thức Xem touchView = findViewById (R.id.remotePager); \t \t touchView.setOnTouchListener (mới View.OnTouchListener() { \t \t \t @ Override \t \t \t public boolean onTouch (Xem v, MotionEvent sự kiện) { \t \t \t \t return true; \t \t \t} \t \t}); – user1453317

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