4

我有以下 XML:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/sliding_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/app_bar">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <fragment
            android:id="@+id/fragment1"
            android:name="com.xyz.Fragment1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            tools:layout="@layout/fragment_layout1" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layoutBottomSheet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="@dimen/global_margin"
        android:orientation="vertical"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <fragment
            android:id="@+id/fragment2"
            android:name="com.xyz.Fragment2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center|top"
            tools:layout="@layout/fragment_layout2" />
    </LinearLayout>

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/global_margin"
        android:layout_marginRight="@dimen/global_margin"
        android:src="@drawable/ic_add_white_24dp"
        app:borderWidth="0dp"
        app:elevation="4dp"
        app:layout_anchor="@id/layoutBottomSheet"
        app:layout_anchorGravity="top|right|end" />
</android.support.design.widget.CoordinatorLayout>

布局应显示为,Fragment1然后在其下方,Fragment2FAB 锚定在Fragment2上方 Fragment2而不是下方

实际上它显示为,

截屏

出了什么问题?任何的想法?

4

3 回答 3

5
<LinearLayout
        android:id="@+id/layoutBottomSheet"
        android:elevation="@dimen/global_margin"
        ...>

layoutBottomSheet可能有太多的高程,FloatingActionButton 的默认高程是4dp,这就是您的按钮隐藏在较高布局后面的原因。

尝试低于或等于的海拔值4dp

于 2016-06-01T16:06:28.003 回答
0

setCompatElevation(...)您可以使用高于底部工作表高度(如果您使用 16dp)的值调用FAB,style="@style/Widget.Design.BottomSheet.Modal"以确保它位于顶部。

于 2016-11-17T10:00:22.523 回答
0

我在 FloatingActionBButton 中添加了 app:layout_dodgeInsetEdges="bottom" 并在 View 中添加了 app:layout_insetEdge="bottom" 并带有底部表单行为:

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="16dp"
        android:clickable="true"
        android:focusable="true"
        app:backgroundTint="@color/white"
        app:fabSize="normal"
        app:layout_dodgeInsetEdges="bottom"
        app:srcCompat="@drawable/icon"
        />

    <View
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_insetEdge="bottom"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
        />
于 2018-08-08T16:59:08.860 回答