如何将 FAB 锚定到带边距的 BottomSheet?

How to anchor FAB to BottomSheet with margins?

我的应用程序有问题,我有一个 BottomSheet 并且我正在添加一个 FAB,FAB 应该总是在 BottomSheet 的顶部所以我添加了一个底部边距对于 FAB,问题是一旦 BottomSheet 展开,FAB 就会锚定到 bottomsheet 而没有初始底部边距。

我怎样才能达到 FAB 总是在最前面?

这是我的代码:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="2dp"
        android:padding="2dp"
        android:scrollbars="vertical"
        tools:listitem="@layout/recyclerview_pterm" />

    <include
        layout="@layout/bottom_sheet_pterm" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="76dp"
        android:clickable="true"
        android:focusable="true"
        app:layout_anchor="@+id/bottomSheet"
        app:layout_anchorGravity="top|end"
        app:srcCompat="@drawable/ic_covid"
        android:contentDescription="@string/verifica_gp" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

这是它的样子:

您可以通过将这两个属性添加到 FAB 来解决该问题:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    ....
    app:useCompatPadding="true"
    android:layout_gravity="top" />

android:layout_gravity="top" 使 FAB 位于锚点之上(即不与其相交),app:useCompatPadding="true" 允许 FAB 与锚点(即 bottomSheet)之间的填充。

样本: