FloatingActionButton слишком высоко над BottomAppBar
Я добавил FAB в BottomAppBar из API 28, как показано в XML ниже. Проблема в том, что он плавает слишком высоко над нижней планкой, а не сидит в колыбели. Нет изменений, если я установлю 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>
1 ответ
Похоже, это ошибка (или, возможно, особенность) BottomAppBar
, Смещение по вертикали FAB зависит от высоты BottomAppBar; если вы установите layout_height
быть 48dp
вместо этого он будет очень хорошо сидеть в колыбели. С другой стороны, если вы установите высоту 200dp
вы увидите, что FAB еще дальше.
Дополнительно (и к сожалению) app:fabCradleVerticalOffset
должно быть положительным значением. Если вы попытаетесь использовать отрицательное значение (нажать FAB вниз), приложение будет аварийно завершено при запуске.
Я не вижу публичного API, который позволил бы вам решить эту проблему. Вместо этого вам просто нужно использовать меньшую высоту для вашего BottomAppBar
, Возможно, вы сможете сшить два вида вместе, чтобы смоделировать более высокую планку.