底部的BottomAppBar

时间:2019-07-07 09:37:27

标签: android android-bottomappbar

我希望我的BottomApp栏位于底部父级布局中,但是由于某种原因,他虽然设置了参数layout_gravity = bottom,但还是跳到了指示器上 我的xml文件

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
    <include
        layout="@layout/toolbar"/>
<androidx.viewpager.widget.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="500dp"
    android:layout_marginBottom="16dp">

    <com.itsronald.widget.ViewPagerIndicator
        android:id="@+id/view_pager_indicator"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:gravity="center_vertical"/>
</androidx.viewpager.widget.ViewPager>

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:id="@+id/main_coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom">

    <com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bottom_app_bar"
        style="@style/bottom_app_bar_style"
        app:fabAlignmentMode="center"
        app:menu="@menu/menu"
        android:layout_gravity="bottom"/>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        style="@style/fab_style"
        android:src="@drawable/ic_plus"
        app:layout_anchor="@id/bottom_app_bar"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

enter image description here

2 个答案:

答案 0 :(得分:0)

您应该做的就是将所有内容放入CoordinatorLayout

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:id="@+id/main_coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom">

<androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             android:background="?attr/colorPrimary"
             android:elevation="4dp"
             app:popupTheme="@style/AppTheme.PopupOverlay"/>

<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

<com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bottom_app_bar"
        style="@style/bottom_app_bar_style"
        app:fabAlignmentMode="center"
        app:menu="@menu/menu"
        android:layout_gravity="bottom"/>
 </androidx.constraintlayout.widget.ConstraintLayout>

//Use a relative layout to put your indicator here

</androidx.coordinatorlayout.widget.CoordinatorLayout>

答案 1 :(得分:0)

您需要了解android的协调器布局。假设您有两个彼此相邻或彼此相邻的视图。当其中一个视图更改其位置时使用协调器布局时,如果第二个视图试图重叠,则第二个视图也将更改。因此,像上面一样,您需要在设计中使用协调器布局。