删除高程阴影而不删除高程本身

Joc*_*Doe 26 android shadow android-toolbar android-elevation android-appbarlayout

AppBarLayout没有办法让没有阴影并保持其高度?

<android.support.design.widget.AppBarLayout
        app:elevation="0dp">
Run Code Online (Sandbox Code Playgroud)

Sea*_*ici 40

要完成M.Sandholtz的答案,您还可以使用XML定义此内容,并带有outlineProvider =“ none”。

<View
    android:id="@+id/viewElevationNoShadow"
    android:outlineProvider="none"
    android:elevation="4dp"/>
Run Code Online (Sandbox Code Playgroud)

  • 仅适用于 API &gt;= v21 (2认同)

Cla*_*ltz 20

我刚遇到同样的问题,这就是为我解决的问题:

val withElevationNoShadow = view.findViewById<*your view type*>(*your view id*)
withElevationNoShadow.outlineProvider = null
Run Code Online (Sandbox Code Playgroud)

请记住,上面的代码是Kotlin,但Java几乎完全相同.

这是因为阴影是由ViewOutlineProviders 绘制的.通过将视图设置ViewOutlineProvidernull,您可以删除默认阴影.

有关ViewOutlineProviders退房的更多信息

https://developer.android.com/reference/android/view/ViewOutlineProvider

https://developer.android.com/training/material/shadows-clipping