如何通过滚动其“导航组件”片段来滚动活动的工具栏

时间:2020-06-13 13:01:18

标签: android xml toolbar android-architecture-navigation

请帮助我。
我有一个带有工具栏和片段容器的活动(一个<fragment>,因为我在应用程序中使用了Navigation Component)。
目标:在片段的内容滚动时向下滚动“活动”的工具栏。 E.我当片段向下滚动时,只有片段的内容可见。
app:layout_scrollFlags="scroll|enterAlways|snap"设置toolbar和为app:layout_behavior="@string/appbar_scrolling_view_behavior"设置fragment的标准解决方案不起作用。
目前,当我向下滚动片段时,“活动”的工具栏会停在原处。
活动的XML:

<androidx.coordinatorlayout.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">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways|snap"/>

    </com.google.android.material.appbar.AppBarLayout>

    <fragment
        android:id="@+id/nav_host_carrier_root"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="false"
        app:defaultNavHost="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        app:navGraph="@navigation/carrier_root_nav_graph" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:0)

您需要使用NestedScrollView并设置:

app:layout_behavior="@string/appbar_scrolling_view_behavior"

此NSV可能是片段父对象,也可能在导航图的片段内