Панель инструментов не разрушается в LinearLayout - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть такая простая раскладка:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/primaryDarkColor">

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

    <fragment
        android:id="@+id/my_nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_nav_view"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:menu="@menu/bottom_navigation_menu"
        app:labelVisibilityMode="labeled"
        />

</LinearLayout>

Когда я прокручиваю, MaterialToolbar не прячется, пока у меня не было CoordinatorLayout, и он работал. Я не могу найти способ исправить это, поэтому когда я прокручиваю, MaterialToolbar скрыт. Вот фото как это выглядит: https://imgur.com/a/MQwDLOI

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Я наконец нашел решение здесь: https://code.luasoftware.com/tutorials/android/android-appbarlayout-with-bottomnavigationview-hide-toolbar-on-scroll-with-fixed-bottomnavigationview/

Также, если некоторые люди хотят, чтобы это было с LinearLayout Я сделал это следующим образом:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/primaryDarkColor">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fitsSystemWindows="true">

     <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appBar"
            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:menu="@menu/main_menu"
                app:layout_scrollFlags="scroll|enterAlways" />
        </com.google.android.material.appbar.AppBarLayout>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <fragment
                android:id="@+id/nav_host_fragment"
                android:name="androidx.navigation.fragment.NavHostFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:defaultNavHost="true"
                app:navGraph="@navigation/nav_graph" />
        </FrameLayout>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_nav_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:menu="@menu/bottom_navigation_menu"
        app:labelVisibilityMode="labeled"
        />

</LinearLayout>
0 голосов
/ 15 апреля 2020

Попробуйте заменить LinearLayout на CoordinatorLayout. Атрибут app: layout_behavior работает только для детей внутри CoordinatorLayout.

...