仅允许一个能够滚动 CoordinatorLayout 的视图。 eg.like 在滑动面板中处理视图工作
Allow only One view that has ablility to scroll the CoordinatorLayout . eg.like Handle view work in Sliding panel
我搜索了很多但没有找到关于堆栈溢出的相同问题
问题-我只想要一个类似滚动CoordinatorLayout的视图
就像在滑动面板布局中处理视图工作
但在我当前的布局中,我有两个视图,一个是句柄视图(带文本的文本视图 "Route Plan"),另一个是 RecyclerView 我想要的是 当用户单击并拖动句柄视图时 CoordinatorLayout 应该滚动但是当用户单击 RecyclerView 它不应该滚动 CoordinatorLayout 它应该只滚动 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 的其他视图时,它可以完美地工作,就像我单击并拖动该视图时 CoordinatorLayout 不动 但我需要那里的回收站视图来显示列表:(
所以尝试做这样的事情:
<?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 不在 layout behavior parent 内,所以他不使用 scroll 标志。如果这不起作用,则另一种方法是将 CoordinatorLayout
放在其他布局中,如 LinearLayout
和 recycleview 在 CoordinatorLayout
外部但在 LinearLayout
.
内部
注意:这是我的想法,不知道行不行。
是的,我自己得到了答案
只需停止 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"/>
我也在 java 文件中使用
mListView = (RecyclerView) rootView.findViewById(android.R.id.list);
mListView.setNestedScrollingEnabled(false);
mListView.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
mListView.stopScroll();
mListView.stopScroll() 这是真正的游戏规则改变者
但是除了 Bruno Ferreira 没有人尝试解决我的问题,我很不高兴 :( 感谢 Bruno 的帮助
我搜索了很多但没有找到关于堆栈溢出的相同问题
问题-我只想要一个类似滚动CoordinatorLayout的视图 就像在滑动面板布局中处理视图工作
但在我当前的布局中,我有两个视图,一个是句柄视图(带文本的文本视图 "Route Plan"),另一个是 RecyclerView 我想要的是 当用户单击并拖动句柄视图时 CoordinatorLayout 应该滚动但是当用户单击 RecyclerView 它不应该滚动 CoordinatorLayout 它应该只滚动 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 的其他视图时,它可以完美地工作,就像我单击并拖动该视图时 CoordinatorLayout 不动 但我需要那里的回收站视图来显示列表:(
所以尝试做这样的事情:
<?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 不在 layout behavior parent 内,所以他不使用 scroll 标志。如果这不起作用,则另一种方法是将 CoordinatorLayout
放在其他布局中,如 LinearLayout
和 recycleview 在 CoordinatorLayout
外部但在 LinearLayout
.
注意:这是我的想法,不知道行不行。
是的,我自己得到了答案
只需停止 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"/>
我也在 java 文件中使用
mListView = (RecyclerView) rootView.findViewById(android.R.id.list);
mListView.setNestedScrollingEnabled(false);
mListView.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
mListView.stopScroll();
mListView.stopScroll() 这是真正的游戏规则改变者 但是除了 Bruno Ferreira 没有人尝试解决我的问题,我很不高兴 :( 感谢 Bruno 的帮助