Отрезана нижняя панель приложения компонентов Android - PullRequest
0 голосов
/ 17 ноября 2018

Я попытался реализовать нижнюю панель приложения компонентов материала, следуя этим рекомендациям и выполняя рефакторинг для AndroidX +, обновляя мою AppTheme. Компоненты материала - нижняя панель приложения

Пока все хорошо, все работает, но кнопка обрезана в моем фрагменте.Screenshot when app is running

Предварительный просмотр в формате xml, однако, показывает это, что выглядит нормально: enter image description here

Вот мой код xml:

<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="match_parent"
android:fitsSystemWindows="true">

<!-- Other components and views -->

<com.google.android.material.bottomappbar.BottomAppBar
    android:id="@+id/bottombar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    app:elevation="2dp"
    app:fabAlignmentMode="center"
    app:fabCradleVerticalOffset="10dp"
    app:fabCradleMargin="10dp" />


<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top|center_horizontal"
    android:adjustViewBounds="true"
    app:layout_anchor="@id/bottombar"
    app:layout_anchorGravity="top|center"
    app:srcCompat="@drawable/marker" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Я даже увеличил fabCradleMargin и fabCradleOffset - в противном случае кнопка полностью находится внизу и совсем не плавает в этом полукруге, как предполагается ...

кто-нибудь получил какие-нибудь подсказки для этого?Большое спасибо!

1 Ответ

0 голосов
/ 18 ноября 2018

Итак, я заметил, что это связано с высотой нижней панели приложения.Если я вручную установлю его на 80dp, Fab покажет, как положено.

Я попробовал еще немного и заметил, что эта ручная настройка высоты необходима только для фрагментов.Я только поместил нижнюю панель приложения во фрагмент, чтобы проверить ее в любом случае.Так что теперь я реализовал это так же, как в руководстве в моем MainActivity, а затем настроил функцию showFab(Boolean enable), которую затем можно вызывать в разных фрагментах в зависимости от необходимости.

Работает как талисман,если кто-то сталкивается с такими же проблемами.Я предполагаю, что это может быть так, как это не должно быть реализовано в одном фрагменте.

...