Skip to content Skip to sidebar Skip to footer

Scrollview Inside Viewpager Not Scrolling

I have a small vertical scrollview inside a viewpager with horizontal swippable pages. The problem is that currently i am not able to scroll through the pages by swiping horizontal

Solution 1:

You can do it with the following custom scrollview

publicclassCustomScrollViewextendsScrollView {
    private GestureDetector mGestureDetector;

    publicCustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mGestureDetector = newGestureDetector(context, newYScrollDetector());
    }

    @OverridepublicbooleanonInterceptTouchEvent(MotionEvent ev) {
        returnsuper.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
    }

    // Return false if we're scrolling in the x direction  classYScrollDetectorextendsSimpleOnGestureListener {
        @OverridepublicbooleanonScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            return Math.abs(distanceY) > Math.abs(distanceX);
        }
    }
}

Solution 2:

I don´t know if it's the same case, but I had a similar problem that you have described. I have looked everywhere to find this answer: https://stackoverflow.com/a/35180360/1969966.

Basically, if your Activity structure is like above example:

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"android:elevation="4dp"android:theme="@style/ThemeOverlay.AppCompat.ActionBar"app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/><android.support.design.widget.TabLayoutandroid:id="@+id/tab_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/toolbar"android:background="?attr/colorPrimary"android:elevation="6dp"android:minHeight="?attr/actionBarSize"app:tabMode="fixed"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/><android.support.v4.view.ViewPagerxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/pager"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/toolbar"tools:context="net.voidynullness.android.tabitytabs.TabLayoutActivity"android:background="#ffffff"/></android.support.design.widget.AppBarLayout><android.support.design.widget.FloatingActionButtonandroid:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom|end"android:layout_margin="@dimen/fab_margin"android:src="@android:drawable/ic_dialog_info"/></android.support.design.widget.CoordinatorLayout>

Change to (Look "android.support.design.widget.AppBarLayout"):

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"android:elevation="4dp"android:theme="@style/ThemeOverlay.AppCompat.ActionBar"app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/><android.support.design.widget.TabLayoutandroid:id="@+id/tab_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/toolbar"android:background="?attr/colorPrimary"android:elevation="6dp"android:minHeight="?attr/actionBarSize"app:tabMode="fixed"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/></android.support.design.widget.AppBarLayout><android.support.v4.view.ViewPagerxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/pager"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/toolbar"tools:context="net.voidynullness.android.tabitytabs.TabLayoutActivity"android:background="#ffffff"/><android.support.design.widget.FloatingActionButtonandroid:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom|end"android:layout_margin="@dimen/fab_margin"android:src="@android:drawable/ic_dialog_info"/></android.support.design.widget.CoordinatorLayout>

Now, you'll able to swipe horizontally and vertically!

Post a Comment for "Scrollview Inside Viewpager Not Scrolling"