0

I use slidingMenu(from jfeinstein10) in my app, I have created a new Activity which extends from SlidingFragmentActivity, in Activity I use ViewPager from support.v4 to display some fragment, using the way gtRfnkN answered in Question ViewPager inside ViewPager

public class GalleryViewPager extends ViewPager {

/** the last x position */
private float   lastX;

/** if the first swipe was from left to right (->), dont listen to swipes from the right */
private boolean slidingLeft;

/** if the first swipe was from right to left (<-), dont listen to swipes from the left */
private boolean slidingRight;

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

public GalleryViewPager(final Context context) {
    super(context);
}

@Override
public boolean onTouchEvent(final MotionEvent ev) {
    final int action = ev.getAction();
    switch (action) {
        case MotionEvent.ACTION_DOWN:

            // Disallow parent ViewPager to intercept touch events.
            this.getParent().requestDisallowInterceptTouchEvent(true);

            // save the current x position
            this.lastX = ev.getX();

            break;

        case MotionEvent.ACTION_UP:
            // Allow parent ViewPager to intercept touch events.
            this.getParent().requestDisallowInterceptTouchEvent(false);

            // save the current x position
            this.lastX = ev.getX();

            // reset swipe actions
            this.slidingLeft = false;
            this.slidingRight = false;

            break;

        case MotionEvent.ACTION_MOVE:
            /*
             * if this is the first item, scrolling from left to
             * right should navigate in the surrounding ViewPager
             */
            if (this.getCurrentItem() == 0) {
                // swiping from left to right (->)?
                if (this.lastX <= ev.getX() && !this.slidingRight) {
                    // make the parent touch interception active -> parent pager can swipe
                    this.getParent().requestDisallowInterceptTouchEvent(false);
                } else {
                    /*
                     * if the first swipe was from right to left, dont listen to swipes
                     * from left to right. this fixes glitches where the user first swipes
                     * right, then left and the scrolling state gets reset
                     */
                    this.slidingRight = true;

                    // save the current x position
                    this.lastX = ev.getX();
                    this.getParent().requestDisallowInterceptTouchEvent(true);
                }
            } else
            /*
             * if this is the last item, scrolling from right to
             * left should navigate in the surrounding ViewPager
             */
            if (this.getCurrentItem() == this.getAdapter().getCount() - 1) {
                // swiping from right to left (<-)?
                if (this.lastX >= ev.getX() && !this.slidingLeft) {
                    // make the parent touch interception active -> parent pager can swipe
                    this.getParent().requestDisallowInterceptTouchEvent(false);
                } else {
                    /*
                     * if the first swipe was from left to right, dont listen to swipes
                     * from right to left. this fixes glitches where the user first swipes
                     * left, then right and the scrolling state gets reset
                     */
                    this.slidingLeft = true;

                    // save the current x position
                    this.lastX = ev.getX();
                    this.getParent().requestDisallowInterceptTouchEvent(true);
                }
            }

            break;
    }

    super.onTouchEvent(ev);
    return true;
}

 }

But when i put a ListView in ViewPager's Fragment, when i moves the ListView horizontally, the ViewPager keeps unmoved and the slidingmenu slides out.Can you tell me how to slove this? thanks a lot.

Community
  • 1
  • 1
abcfrom0
  • 31
  • 2
  • see this http://stackoverflow.com/questions/13895149/sliding-menu-locks-touch-event-on-upper-view – Shruti Oct 18 '13 at 10:02

1 Answers1

-1

Try THis Demo for Sliding with listview, map... hope this will help u : https://github.com/jfeinstein10/SlidingMenu

Shivang Trivedi
  • 2,182
  • 1
  • 20
  • 26