我像下面的XML一样,从API 28向BottomAppBar添加了FAB。问题在于,它漂浮在底杆上方的位置过高,而不是坐在摇篮中。如果将app:fabCradleVerticalOffset设置为0dp,则没有变化。
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout android:paddingTop="30dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="bottom"
app:backgroundTint="@android:color/white"
app:fabAlignmentMode="center" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabIncrement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_exposure_plus_1_black_24dp"
app:backgroundTint="@color/colorPrimary"
app:fabSize="normal"
app:layout_anchor="@id/bottomAppBar" />
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:1)
这似乎是BottomAppBar
的错误(或功能)。 FAB的垂直偏移量取决于BottomAppBar的高度。如果将layout_height
设置为48dp
,它将很好地放在通讯座中。另一方面,如果将高度设置为200dp
,则会看到FAB距离更远。
(不幸的是)app:fabCradleVerticalOffset
必须为正值。如果您尝试使用负值(将FAB按下),则该应用在运行时将崩溃。
我没有看到任何公共API可让您解决此问题。相反,您只需要为BottomAppBar
使用较小的高度即可。也许您可以将两个视图缝合在一起,以模拟更高的钢筋。