FAB 的海拔高度不起作用

Elevation for FAB doesn't work

我正在尝试从 android.support.design.widget.FloatingActionButton

测试 FAB

当我从 xml 布局设置标高时,阴影显示标高。

当我尝试以编程方式更改高度时:

fab.setElevation(9);

我收到一条错误消息,说我的 API 应该从 14 提高到 21。

我做错了什么?

这用于 ImageButon,而不是 FAbButton,但它模拟 Fab: 你可以做的是在 drawable 文件夹中创建一个 fab-btn.xml 来模拟阴影:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="false">
    <layer-list>
        <item android:bottom="0dp" android:left="2dp" android:right="2dp" android:top="2dp">
            <shape android:shape="oval">
                <solid android:color="#44000000" />
            </shape>
        </item>
        <item android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp">
            <shape android:shape="oval">
                <solid android:color="@color/orange" />
            </shape>
        </item>
    </layer-list>
</item>
<item android:state_pressed="true">
    <shape android:bottom="2dp" android:left="2dp" android:right="2dp" android:shape="oval" android:top="2dp">
        <solid android:color="#E73700" />
    </shape>
    </item>

</selector>

在 fab 按钮的主要布局中:

 android:background="@drawable/fab_btn"
 android:elevation="5dp"

如果它是 API 21+ 它将采取 levation,如果不是它将采取 fab_btn.xml。您可以更新此文件以获得所需的影子

晶圆厂海拔使用:

    fab.setCompatElevation(8f); //API>=21

这个方法:

    fab.setElevation(8f); // Works only for API >=21 for other layouts

海拔仅适用于 API>=21