Задание заголовка в нижней панели приложения запрещено

У меня есть основное действие в моем приложении с новой нижней панелью приложения из компонентов Material Design. При взаимодействии с пользователем я заменяю разные фрагменты.

Чтобы пользователь знал о своем текущем положении в приложении, я решил установить заголовок нижней панели приложения так же, как и фрагмент. Но я не смог установить заголовок и, увидев реализацию, обнаружил, что "Bottom App Bar не может иметь заголовок".

Я хотел знать, как я должен информировать пользователя о своей позиции в приложении в этом сценарии или есть ли способ установить заголовок для нижней панели приложения.

1 ответ

Да, это правда, что мы не можем использовать заголовок в BottomApp Bar, потому что это не удобно в некоторых случаях, когда плавающая кнопка может находиться в центре BottomApp Bar.

Но ваша проблема подлинная, у нас не может быть панели приложения (даже если она нижняя), нам нужен заголовок для этого.

Следовательно, я решил это по (старому) составному расположению.

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">

    <include layout="@layout/content_main" />

    <com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:fabAlignmentMode="end"
        app:backgroundTint="@color/colorPrimaryDark">

        <!-- Here is the magic happens -->

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/your_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/app_name"
                android:textColor="#fff"
                android:layout_centerInParent="true"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"/>

        </RelativeLayout>

    </com.google.android.material.bottomappbar.BottomAppBar>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_anchor="@id/bar"
        app:layout_insetEdge="right"
        app:rippleColor="@color/colorPrimary"
        android:src="@drawable/ic_menu_24"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout> 

В приведенной выше реализации я установил app:fabAlignmentMode="end" так что у нас может быть аккуратное место для заголовка.

И хорошо, что этот подход заключается в том, что вы можете настроить свой заголовок в любой степени, используя пользовательские шрифты, цвета.

Вывод вышеуказанной реализации:

Нажмите, чтобы увидеть вывод

Я надеюсь, что это решит вашу проблему.

Другие вопросы по тегам