BottomNavigationView 卡在顶部

BottomNavigationView stuck at top

我一直在努力让 BottonNavigationView 正常工作。它一直停留在布局的顶部,让我抓狂。

我看过 Material BottomNavigationView 的设计文档,它看起来很简单,但我无法让它工作,https://material.io/develop/android/components/bottom-navigation/。我什至尝试制作一个完全干净的项目,我尝试了它并且发生了同样的事情。

<?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="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:id="@+id/mainLayout">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNavigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        app:menu="@menu/bottom_bar_menu" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/content"
        android:enabled="true"
        android:icon="@drawable/ic_menu_black_24dp"
        android:title="Content"/>
    <item
        android:id="@+id/document"
        android:enabled="true"
        android:icon="@drawable/ic_picture_as_pdf_black_24dp"
        android:title="Document"/>
    <item
        android:id="@+id/search"
        android:enabled="true"
        android:icon="@drawable/ic_search_black_24dp"
        android:title="Search"/>
</menu>

Screenshot

有什么想法吗?

我想推荐使用 ConstraintLayout 并在 Designer 工具中设置约束。如果您是 android 世界的新手,会更容易。

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNavigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/bottom_bar_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>

底部导航的引力设置为开始 android:layout_gravity="start" 将其更改为 android:layout_gravity="bottom" 应该适合您。