我想把这个FAB放在BottomAppBar的中心
但是当我添加
app:fabAlignmentMode="center"
时,FAB转到中心并且app:fabAnchorMode="cradle"
的效果消失了
如何解决这个问题?
这是 XML 代码:
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:background="@drawable/app_background"
tools:context=".ui.main.MainActivity">
...
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="120dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_gravity="bottom"
app:fabAnchorMode="cradle"
app:fabAlignmentMode="center"
app:fabCradleVerticalOffset="0dp"
app:fabCradleMargin="10dp">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
app:menu="@menu/bottom_menu"/>
</com.google.android.material.bottomappbar.BottomAppBar>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_camera"
app:layout_anchor="@id/app_bar"
app:fabCustomSize="70dp"
app:shapeAppearanceOverlay="@style/ShapeAppearance.Material3.Corner.Full"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
我尝试使用
app:layout_anchorGravity="center"
而不使用 app:fabAlignmentMode="center"
将 FAB 居中,但仍然不起作用
我正在使用Material Design 3
您不能直接使用
com.google.android.material.bottomnavigation.BottomNavigationView
作为 com.google.android.material.bottomappbar.BottomAppBar
的子级,而是查看 this SO 问题以获取解决方法。