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"