Android 将锚点设置为底页

Android set anchor to Bottom Sheets

我想在底部设置一个锚点Sheet:

<!-- bottom sheets -->
<LinearLayout
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:orientation="vertical"
    android:padding="10dp"
    app:layout_behavior="@string/bottom_sheet_behavior">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="bottom sheets test! " />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! bottom sheets content! " />
</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email"
    app:layout_anchor="@id/bottom_sheet"
    app:layout_anchorGravity="bottom|end" />

我将 FAB 添加为 CoordinateLayout 的直接子级,并将底部 sheet 的 ID 设置为 FAB 的 layout_anchor 并设置其 layout_anchorGravity。但它不会 work.The FAB 不会移动。

试试这个:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email"
    app:layout_anchor="@id/bottom_sheet"
    app:layout_anchorGravity="end" />

我遇到了同样的问题,我找到了这个答案:

它将起作用,如果您将代码更改为:

app:layout_anchorGravity="top|end"

这对我有用。只要确保它在协调器布局内即可。

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        app:fabSize="normal"
        app:srcCompat="@drawable/ic_fab"
        app:layout_anchor="@id/bottom_sheet"
        app:layout_anchorGravity="top|end" />