Задание заголовка в нижней панели приложения запрещено
У меня есть основное действие в моем приложении с новой нижней панелью приложения из компонентов 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"
так что у нас может быть аккуратное место для заголовка.
И хорошо, что этот подход заключается в том, что вы можете настроить свой заголовок в любой степени, используя пользовательские шрифты, цвета.
Вывод вышеуказанной реализации:
Я надеюсь, что это решит вашу проблему.