Android 带阴影的底部导航栏
Android Bottom Navigation Bar with drop shadow
我正在实施 Bottom Navigation Bar in Android app using Google's support design library v25.1.0。有没有办法添加投影效果,与当前 Android 原生 Google 照片应用程序相同?
您可以使用简单的视图及其背景在底栏上方绘制自己的阴影:
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_above="@id/bottom_bar"
android:background="@drawable/shadow"/>
drawable/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>
此外,如果使用此方法,则不会存在兼容性问题。
您可以使用海拔向任何视图添加阴影
<TextView
android:id="@+id/myview"
...
android:elevation="2dp"
android:background="@drawable/myrect" />
参考this了解更多信息
对于那些使用带有底部导航栏(或 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
对于使用 Material 组件的用户 - 此问题已由 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"
,否则阴影将被覆盖。
我正在实施 Bottom Navigation Bar in Android app using Google's support design library v25.1.0。有没有办法添加投影效果,与当前 Android 原生 Google 照片应用程序相同?
您可以使用简单的视图及其背景在底栏上方绘制自己的阴影:
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_above="@id/bottom_bar"
android:background="@drawable/shadow"/>
drawable/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>
此外,如果使用此方法,则不会存在兼容性问题。
您可以使用海拔向任何视图添加阴影
<TextView
android:id="@+id/myview"
...
android:elevation="2dp"
android:background="@drawable/myrect" />
参考this了解更多信息
对于那些使用带有底部导航栏(或 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
对于使用 Material 组件的用户 - 此问题已由 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"
,否则阴影将被覆盖。