Android 仅允许一个能够滚动坐标布局的视图。例如,在滑动面板中处理视图工作

Android 仅允许一个能够滚动坐标布局的视图。例如,在滑动面板中处理视图工作,android,scroll,android-coordinatorlayout,android-nestedscrollview,Android,Scroll,Android Coordinatorlayout,Android Nestedscrollview,我已经搜索了很多次,但没有在堆栈溢出上找到相同的问题 问题-我只希望只有一个视图可以滚动协调或布局相似 类似于滑动面板布局中的控制柄视图工作 但在我当前的布局中,我有两个视图,一个是handle视图(文本视图,带有文本“路线图”)另一个是RecyclerView我想要的是当用户单击并拖动手柄时,视图协调布局应该滚动,但当用户单击RecyclerView时,它不应该滚动协调布局,它应该只滚动RecyclerView项是否可能 这是我目前的布局- <?xml version="1.0" enc

我已经搜索了很多次,但没有在堆栈溢出上找到相同的问题

问题-我只希望只有一个视图可以滚动协调或布局相似 类似于滑动面板布局中的控制柄视图工作

但在我当前的布局中,我有两个视图,一个是handle视图(文本视图,带有文本“路线图”)另一个是RecyclerView我想要的是当用户单击并拖动手柄时,视图协调布局应该滚动,但当用户单击RecyclerView时,它不应该滚动协调布局,它应该只滚动RecyclerView项是否可能

这是我目前的布局-

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
    android:background="@drawable/bg_sub_tab"
    android:padding="5pt"
    tools:ignore="RtlHardcoded">
    ​

    <android.support.design.widget.AppBarLayout
        android:id="@+id/materialup.appbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="50dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        ​

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/main.collapsing"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="?colorPrimary"
            app:expandedTitleMarginBottom="94dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@+id/tvRoutePlan"
                android:layout_alignParentTop="true"
                android:gravity="top">

                <RelativeLayout
                    android:id="@+id/mapContainer"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </FrameLayout>


        </android.support.design.widget.CollapsingToolbarLayout>
        ​
    </android.support.design.widget.AppBarLayout>
    ​


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <android.support.v4.widget.NestedScrollView
                android:id="@+id/content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="none"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"><!--com.indus.corelib.ui.FixedScrollingViewBehavior -->

                <TextView
                    android:id="@+id/tvRoutePlan"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:layout_alignParentBottom="true"
                    android:background="@drawable/map_list_title_gradient"
                    android:drawSelectorOnTop="true"
                    android:gravity="center_horizontal|center_vertical"
                    android:padding="5pt"
                    android:text="Route Plan"
                    android:textColor="@android:color/white"
                    android:textSize="25sp"
                    android:visibility="visible"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
            </android.support.v4.widget.NestedScrollView>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.v7.widget.RecyclerView
                    android:id="@android:id/list"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:clipToPadding="true"
                    android:nestedScrollingEnabled="false"
                    android:background="@android:color/transparent"
                    android:cacheColorHint="@android:color/white"
                    android:descendantFocusability="blocksDescendants"
                    android:divider="@android:color/darker_gray"
                    android:dividerHeight="@dimen/divider_height"
                    android:drawSelectorOnTop="true"
                    android:smoothScrollbar="true" />
            </LinearLayout>


        </LinearLayout>
    </LinearLayout>


</android.support.design.widget.CoordinatorLayout>

​
​
​
​

注意:-当我使用其他视图而不是RecyclerView时,它会像我所希望的那样完美地工作,就像我单击并拖动该视图协调布局不移动,但我需要RecyclerView在那里显示列表:(

所以请尝试这样做:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
    android:background="@drawable/bg_sub_tab"
    android:padding="5pt"
    tools:ignore="RtlHardcoded">
    ​

    <android.support.design.widget.AppBarLayout
        android:id="@+id/materialup.appbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="50dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        ​

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/main.collapsing"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="?colorPrimary"
            app:expandedTitleMarginBottom="94dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@+id/tvRoutePlan"
                android:layout_alignParentTop="true"
                android:gravity="top">

                <RelativeLayout
                    android:id="@+id/mapContainer"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </FrameLayout>


        </android.support.design.widget.CollapsingToolbarLayout>
        ​
    </android.support.design.widget.AppBarLayout>
    ​


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <android.support.v4.widget.NestedScrollView
                android:id="@+id/content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="none"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"><!--com.indus.corelib.ui.FixedScrollingViewBehavior -->

                <TextView
                    android:id="@+id/tvRoutePlan"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:layout_alignParentBottom="true"
                    android:background="@drawable/map_list_title_gradient"
                    android:drawSelectorOnTop="true"
                    android:gravity="center_horizontal|center_vertical"
                    android:padding="5pt"
                    android:text="Route Plan"
                    android:textColor="@android:color/white"
                    android:textSize="25sp"
                    android:visibility="visible"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
            </android.support.v4.widget.NestedScrollView>    

        </LinearLayout>
    </LinearLayout>

                <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.v7.widget.RecyclerView
                    android:id="@android:id/list"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:clipToPadding="true"
                    android:nestedScrollingEnabled="false"
                    android:background="@android:color/transparent"
                    android:cacheColorHint="@android:color/white"
                    android:descendantFocusability="blocksDescendants"
                    android:divider="@android:color/darker_gray"
                    android:dividerHeight="@dimen/divider_height"
                    android:drawSelectorOnTop="true"
                    android:smoothScrollbar="true" />
            </LinearLayout>


</android.support.design.widget.CoordinatorLayout>

​
​
​
​
因此,从您的布局行为父项中删除recycleview。因为recycleview不在布局行为父项中,所以他不会执行滚动标志。如果不起作用,则将
协调布局
放在其他布局中,如
LinearLayout
和recycleview外部
协调布局
但内部
线性布局


注意:这是我的主意,我不知道它是否有效。

是的,我自己得到了答案

只要停止RecyclerView的滚动,它就会按照我的要求工作

                 <android.support.v7.widget.RecyclerView
                        android:id="@android:id/list"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="@android:color/transparent"
                        android:cacheColorHint="@android:color/white"
                        android:descendantFocusability="blocksDescendants"
                        android:divider="@android:color/darker_gray"
                        android:dividerHeight="@dimen/divider_height"
                        android:drawSelectorOnTop="true"
                        android:nestedScrollingEnabled="false"
                        android:overScrollMode="never"
                        android:fadeScrollbars="false"/> 
mListView.stopScroll()这才是真正的游戏规则改变者
但我不高兴的是,除了Bruno Ferreira之外,没有人试图解决我的问题:(感谢Bruno的帮助

您将recycleview放在具有滚动行为的linearlayout中可能是您的问题尝试放置局外人如果您愿意,我将使用回答更好地解释是的,请使用一些xml代码解释它…谢谢:)我用两种可能的方式添加了一个答案:)不起作用!!我希望在手柄视图下方显示recycleview,以便移动手柄视图移动协调器布局。。。。。。。感谢您的帮助,如果您将recycleview放入nestedscrollview并在recycleview中设置android:nestedScrollingEnabled=“false”?
        mListView = (RecyclerView) rootView.findViewById(android.R.id.list);
        mListView.setNestedScrollingEnabled(false);
        mListView.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
        mListView.stopScroll();