Я хотел бы создать представление ниже для тестового android приложения. Вот настоящие шаги, которые я выполнил, чтобы создать представление:
- Создан файл макета с макетом координатора в качестве элемента root.
- Добавил нижнюю панель и закрепил ее к нижней части.
- Добавлена плавающая кнопка действия и привязана к нижней панели.
- Создан файл ресурсов меню с тремя пунктами меню.
- Добавлен пункт меню в нижнюю панель.
Когда я запускаю приложение, вид выглядит как изображение ниже:
Я пытался использовать Bottomnavigationview с основной кнопкой плавающего действия, которая раздувалась как макет действия в пункте меню. Использование этого подхода позволяет отображать только пункты меню и их тест, но кнопка с плавающим действием не отображается.
Какой подход лучше использовать? Использование BottomAppBar или BottomNavigationView. Я пытаюсь выяснить, могу ли я использовать доступные компоненты материала без необходимости выполнять хаки.
Файлы XML выглядят следующим образом:
activity_main
<?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">
<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:srcCompat="@mipmap/sharp_local_atm_black_24" />
<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="center"
app:fabCradleRoundedCornerRadius="0dp"
app:fabCradleMargin="0dp"
app:fabAnimationMode="slide"
app:labelVisibilityMode="labeled"
app:fabCradleVerticalOffset="8dp"
app:menu="@menu/app_bar_menu"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Меню XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/app_bar_home"
android:icon="@mipmap/sharp_home_black_24"
android:title="@string/home"
app:showAsAction="always"/>
<item
android:id="@+id/app_bar_wallet"
android:icon="@mipmap/sharp_account_balance_wallet_black_24"
android:title="@string/wallet"
app:showAsAction="always"/>
<item
android:id="@+id/app_bar_atm"
android:title="CASH"
app:showAsAction="always"/>
<item
android:id="@+id/app_bar_cart"
android:icon="@mipmap/sharp_shopping_cart_black_24"
android:title="@string/cart"
app:showAsAction="always"/>
<item
android:id="@+id/app_bar_more"
android:icon="@mipmap/sharp_menu_black_24"
android:title="@string/more"
app:showAsAction="always"/>
</menu>