0

I have a few Horizontally scrollable Recycler views inside a NestedScrollView. How do I disable only the vertical scroll in the recycler views and pass this vertical touch to the parent NestedScrollView?

DevAndroid
  • 1,050
  • 10
  • 22

2 Answers2

0

try this

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="192dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="@color/toolbarScrim"
        app:title=" "
        app:expandedTitleTextAppearance="@android:color/transparent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <com.android.volley.toolbox.NetworkImageView
            android:id="@+id/ArticleImg"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/article_img"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffe5e5e5"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">
    <RelativeLayout xmlns: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"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:context="com.global.jet.global.BizForum.ArticleView"
        tools:showIn="@layout/activity_article_view">


        <RelativeLayout

            android:layout_marginTop="10dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/view2">

            <ImageView
                android:layout_margin="10dp"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:id="@+id/imageView9"
                android:background="@drawable/rv"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginLeft="10dp"
                android:layout_marginStart="10dp"
                />

            <TextView
                android:layout_marginLeft="10dp"
                android:textColor="@color/link"
                android:textSize="18sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/ArticlePostName"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/imageView9"
                android:layout_toEndOf="@+id/imageView9" />

            <ImageView
                android:layout_marginRight="10dp"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:src="@mipmap/ic_add_black_18dp"
                android:id="@+id/button3"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

            <TextView
                android:layout_marginLeft="10dp"
                android:textSize="14sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="31 oct 2015,12:49-"
                android:id="@+id/ArticleDate"
                android:layout_below="@+id/ArticlePostName"
                android:layout_toRightOf="@+id/imageView9"
                android:layout_toEndOf="@+id/imageView9" />

            <TextView
                android:layout_marginLeft="10dp"
                android:textColor="@color/link"
                android:textSize="14sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/ArticleDes"
                android:layout_below="@+id/ArticleDate"
                android:layout_toRightOf="@+id/imageView9"
                android:layout_toEndOf="@+id/imageView9" />

            <ImageView
                android:background="@drawable/clock_ic"
                android:textSize="14sp"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Small Text"
                android:id="@+id/textView15"
                android:layout_alignTop="@+id/ArticleDate"
                android:layout_toRightOf="@+id/ArticleDate"
                android:layout_toEndOf="@+id/ArticleDate" />

            <TextView
                android:layout_marginLeft="5dp"
                android:textSize="14sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="3 min read"
                android:id="@+id/ArticleTime"
                android:layout_alignTop="@+id/textView15"
                android:layout_toRightOf="@+id/textView15"
                android:layout_toEndOf="@+id/textView15" />

            <View
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="@color/grey_333"
                android:id="@+id/textView17"
                android:layout_below="@+id/imageView9"
                android:layout_alignLeft="@+id/imageView9"
                android:layout_alignStart="@+id/imageView9"
                android:layout_alignRight="@+id/button3"
                android:layout_alignEnd="@+id/button3" />             
        </RelativeLayout>
    </RelativeLayout>

</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.RecyclerView
     android:id="@+id/scrollableview"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     app:layout_behavior="@string/appbar_scrolling_view_behavior" />

rahul
  • 13
  • 9
0

I'd say you set an touch listener for the RecyclerView and detect whether it is horizontal or vertical scroll. Return true when it is horizontal and return false when it is vertical.

RecyclerView rv = findViewById(R.id.recyclerView);
rv.setOnTouchListener(new View.OnTouchListener {
    public boolean onTouch(View v, MotionEvent event) {
        // your logic here
    }
});

Reference - View.OnTouchListener

jaibatrik
  • 5,072
  • 6
  • 28
  • 60