0

Using a dynamically created viewpager with PageAdapter ,as

myViewPager = ControlVP(context); where

public class ControlVP extends ViewPager {


    public ControlViewPager(Context context) {


        super(context);
        }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {

            return false;

    }


        @Override
    public boolean onTouchEvent(MotionEvent event) {


    static final int MIN_DISTANCE = 100;
        float DOWNx = 0;


                float UPx=0;

        boolean ret=false;

        switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN: {//

            DOWNx = event.getX();

        }

        case MotionEvent.ACTION_UP: {

            UPx = event.getX();

        }
        if(UPx-DOWNx>MIN_DISTANCE)

        {
             ret=true;

        }

        }
                return ret;
    }

}

But it leads to disable viewpager as a whole ,but what I want isto enable viewpager for first two fragment and disable it for the third as third fragment contains drag drop,is it possible,thanx in advance I also tried

int[] childIdArr =
      {R.id.iA,R.id.iAA1,R.id.iAAA2};

int sourceId =event.getSource();

      for(int i=0;i<=childIdArr.length;i++) {

          if(sourceId == i)

{   return false;    } 

else {   return true; } 


}

in onInterceptTouchEvent(MotionEvent event) but nothing works .

GrIsHu
  • 29,068
  • 10
  • 64
  • 102
user2609847
  • 185
  • 2
  • 12

1 Answers1

0

In the onPageSelected event of the ViewPager you can get the current displayed view and then disable that view.

    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                                //if (position == position_to_disable)    
                //see link https://stackoverflow.com/questions/12854783/android-viewpager-get-the-current-view
                                //to see how you get the current view
                                //then set view.setEnabled(false);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });

Link Android ViewPager get the current View shows how you can get the current displayed view.

Community
  • 1
  • 1
Kevin Joymungol
  • 1,764
  • 4
  • 20
  • 30