23

我正在使用Google 的支持设计库 v25.1.0在 Android 应用程序中实现底部导航栏。有什么方法可以添加阴影效果,就像当前的 Android 原生 Google Photos 应用一样?

在此处输入图像描述

4

4 回答 4

100

您可以使用简单的 View 及其背景在底栏上方绘制自己的阴影:

<View
    android:layout_width="match_parent"
    android:layout_height="4dp"
    android:layout_above="@id/bottom_bar"
    android:background="@drawable/shadow"/>

可绘制/shadow.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#1F000000"
        android:endColor="@android:color/transparent"
        android:angle="90" />
</shape>

此外,如果使用这种方法,也不存在兼容性问题。

于 2017-01-14T14:53:20.347 回答
5

您可以使用高程向任何视图添加阴影

<TextView
android:id="@+id/myview"
...
android:elevation="2dp"

android:background="@drawable/myrect" />

请参阅以获取更多信息

于 2017-03-09T09:48:52.133 回答
4

对于那些使用带有底部导航栏(或BottomAppBar)的 CoordinatorLayout 的人,您可以使用以下内容在栏上方附加阴影:

<View
    android:layout_width="match_parent"
    android:layout_height="4dp"
    android:background="@drawable/shadow"
    app:layout_anchor="@+id/toolbar"
    app:layout_anchorGravity="top"/>

很明显,替换@+id/toolbar为底部导航栏的id

于 2018-08-17T22:53:49.733 回答
3

对于那些使用材料组件的人 - 这已由com.google.android.material:material:1.1.0-alpha09.

从 1.1.0-alpha05 开始可用:https ://github.com/material-components/material-components-android/releases/tag/1.1.0-alpha05

用于android:elevation="4dp"设置高程阴影。

另外,不要忘记clipChildren="false"在主布局上设置,否则阴影将被覆盖。

于 2019-08-02T15:25:59.973 回答