1

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

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

当我尝试以编程方式更改海拔时:

fab.setElevation(9);

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

我究竟做错了什么?

4

2 回答 2

2

对于晶圆厂海拔使用:

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

这种方法:

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

高程仅适用于 API>=21

于 2018-04-23T12:40:33.630 回答
0

这用于 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。您可以更新此文件以获得所需的阴影

于 2015-07-08T09:54:48.497 回答