移除高程阴影而不移除高程本身
Remove elevation shadow without removing elevation itself
有没有办法让 AppBarLayout
没有阴影并保持高度?
<android.support.design.widget.AppBarLayout
app:elevation="0dp">
我刚刚 运行 遇到了同样的问题,这就是为我解决的问题:
val withElevationNoShadow = view.findViewById<*your view type*>(*your view id*)
withElevationNoShadow.outlineProvider = null
请记住,上面的代码是 Kotlin,但 Java 几乎相同。
之所以有效,是因为阴影是由 ViewOutlineProvider
绘制的。通过将视图的 ViewOutlineProvider
设置为 null
,您可以移除默认阴影。
有关 ViewOutlineProvider
的更多信息,请查看
https://developer.android.com/reference/android/view/ViewOutlineProvider
和
https://developer.android.com/training/material/shadows-clipping
要完成 M.Sandholtz 答案,您还可以在 XML 中定义它,使用 outlineProvider="none".
<View
android:id="@+id/viewElevationNoShadow"
android:outlineProvider="none"
android:elevation="4dp"/>
有没有办法让 AppBarLayout
没有阴影并保持高度?
<android.support.design.widget.AppBarLayout
app:elevation="0dp">
我刚刚 运行 遇到了同样的问题,这就是为我解决的问题:
val withElevationNoShadow = view.findViewById<*your view type*>(*your view id*)
withElevationNoShadow.outlineProvider = null
请记住,上面的代码是 Kotlin,但 Java 几乎相同。
之所以有效,是因为阴影是由 ViewOutlineProvider
绘制的。通过将视图的 ViewOutlineProvider
设置为 null
,您可以移除默认阴影。
有关 ViewOutlineProvider
的更多信息,请查看
https://developer.android.com/reference/android/view/ViewOutlineProvider
和
https://developer.android.com/training/material/shadows-clipping
要完成 M.Sandholtz 答案,您还可以在 XML 中定义它,使用 outlineProvider="none".
<View
android:id="@+id/viewElevationNoShadow"
android:outlineProvider="none"
android:elevation="4dp"/>