使用工具栏时阴影不起作用(Lollipop appcompat-v7)

如您所知,Elevation不适用于Pre-Lollipop设备。 因此,appcompat-v7中的默认App Bar使用“伪阴影”纹理,我喜欢称之为模拟阴影。 我的问题是我需要使用自定义工具栏。 当我使用自定义工具栏时,不存在“伪阴影”。 所以它看起来很平坦。 知道如何添加阴影吗? 有些人在其他论坛上说过添加一个前景为“android:windowContentOverlay”的FrameLayout,它以某种方式与ToolBar重叠。 遗憾的是,我没有find任何办法让这项工作得以实现。 出于某种原因,在我的测试中,“android:windowContentOverlay”无论如何都是隐形的。 不知道我做错了什么。 :/

这是我的工具栏的布局XML数据:

 

以下是使用默认AppCompat AppBar的样子: http : //imgur.com/0EiE1Vv

以下是使用自定义ToolBar的样子: http : //imgur.com/GGEC6Tq

编辑:在alanv的帮助下,我想出了如何在工具栏下面制作阴影。 但是,它与AppCompat中的默认设置不同。 它只是一个微弱的阴影,如果我没记错的话,它与旧版本中使用的阴影资源相同。 我正在努力寻找默认AppCompat栏的资源。

您将把它放在工具栏下面。

    

@绘制/ toolbar_shadow:

     

我建议你使用两种不同的布局(一种用于版本21,一种用于所有其他布局)并使用以下内容将它们包含在布局中:

  

示例: https : //gist.github.com/P0T4T0x/fbd2151bb40d3bd635d0

要在工具栏下显示阴影,请使用Google Android设计支持库中提供的AppBarLayout 。 以下是如何使用它的示例。

    

要使用Google Android设计支持库,请在build.gradle文件中输入以下内容:

  compile 'com.android.support:design:22.2.0' 

我只有一个带有ImageView的自定义XML阴影

   

和drawable文件夹中的图像资源shadow_shape.xml:

     

你可以根据你的需要@dimen/shadow_height @color/shadow @dimen/shadow_height@color/shadow来得到相当不错的结果( @color/shadow越深@color/shadow ,视图越高,假高度越高)。 它不是原生的,但非常可定制。