我正在尝试从 android.support.design.widget.FloatingActionButton 测试 FAB
当我从 xml 布局设置高程时,阴影显示高程。
当我尝试以编程方式更改海拔时:
fab.setElevation(9);
我收到一条错误消息,说我的 API 应该从 14 提高到 21。
我究竟做错了什么?
我正在尝试从 android.support.design.widget.FloatingActionButton 测试 FAB
当我从 xml 布局设置高程时,阴影显示高程。
当我尝试以编程方式更改海拔时:
fab.setElevation(9);
我收到一条错误消息,说我的 API 应该从 14 提高到 21。
我究竟做错了什么?
对于晶圆厂海拔使用:
fab.setCompatElevation(8f); //API>=21
这种方法:
fab.setElevation(8f); // Works only for API >=21 for other layouts
高程仅适用于 API>=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。您可以更新此文件以获得所需的阴影