<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<android.support.v7.widget.CardView
android:id="@+id/card_authentication_container"
style="@style/CardView"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_above="@id/button_authentication"
android:layout_gravity="center_horizontal|top"
android:layout_marginTop="32dp"
app:cardCornerRadius="10dp"
app:cardElevation="10dp">
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/float_button_authenticate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gamepad"
app:fabSize="mini"
app:layout_anchor="@id/card_authentication_container"
app:layout_anchorGravity="bottom|center_horizontal" />
</android.support.design.widget.CoordinatorLayout>
当我尝试使用app:layout_anchorGravity =“ bottom | center_horizontal”在CardView上设置浮动操作按钮时,它会在CardView下设置。
答案 0 :(得分:0)
问题出在您的身上
app:cardElevation="10dp"
由于CardView
的海拔高度将大于FloatingActionButton
中的海拔高度,因此它将始终显示在后面。
说明:来自documentation:
高程是沿曲面的两个表面之间的相对距离 z轴。
因此,就z轴而言,CardView
的位置(10dp)比FAB高得多(因为您未定义任何海拔值,它将使用默认值0dp)。
解决方案: 在FAB中将高度设置为 10dp或更高。
示例:
<android.support.design.widget.FloatingActionButton
android:id="@+id/float_button_authenticate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gamepad"
app:elevation="10dp"
app:fabSize="mini"
app:layout_anchor="@id/card_authentication_container"
app:layout_anchorGravity="bottom|center_horizontal" />
提示:请勿将10dp用于卡片提升。在material specification中使用建议值1dp。