2012-06-13 10 views
13

vor allem Entschuldigung für mein schlechtes Englisch.Deaktivieren Sie die Gesten in PagerAdapter/ViewPager

Ich habe eine funktionierende PagerAdapter mit 3 Views. Es funktioniert gut. Ich kann die Ansichten mit normalen Gesten UND mit Buttonclicks durchschalten. Aber ich möchte die Gesten deaktivieren. Ist es möglich, die Ansichten nur mit buttonClicks zu wechseln und die Gesten zu deaktivieren?

hier ist die 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; 
     } 
    } 

GELÖST:

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

      return true; 
     } 
    }); 

Antwort

9

Aufschalten der onTouchListener() und return false Paging auf Swipe zu deaktivieren.

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

Dank, löste es auf diese Weise: \t \t letzte Ansicht Touchview = findViewById (R.id.remotePager); \t \t touchView.setOnTouchListener (neu View.OnTouchListener() { \t \t \t @Override \t \t \t public boolean OnTouch (Blick v, Motion event) { \t \t \t \t return true; \t \t \t} \t \t}); – user1453317

Verwandte Themen