在没有Sherlock的情况下移除ActionBar下方的阴影

时间:2014-07-07 01:44:09

标签: java android android-actionbar android-support-library android-appcompat

我使用AppCompat代替Sherlock而不是兼容性。有没有办法删除ActionBar下面的阴影?我已经搜索了这么多的答案,而且都依赖于Sherlock,这意味着,

<item name="android:windowContentOverlay">@null</item>

根本不适用于AppCompat。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

据我所知,如果设备的系统版本高于ActionBar,Sherlock将使用默认14

如果您使用此tool为操作栏生成主题,则会为操作栏生成背景9patch图像。如果你仔细观察它们,你会在底部看到不同的颜色,这会产生这种阴影效果。只需使用照片工具将其删除,您就可以获得ActionBar的无阴影主题。

答案 1 :(得分:0)

我在appcompat-v7资源库/res/style_base.xml中找到了这个:

<style name="Widget.AppCompat.Base.ActionBar.Solid" parent="Widget.AppCompat.Base.ActionBar">
    <item name="background">@drawable/abc_ab_solid_dark_holo</item>
    <item name="backgroundStacked">@drawable/abc_ab_stacked_solid_dark_holo</item>
    <item name="backgroundSplit">@drawable/abc_ab_bottom_solid_dark_holo</item>
</style>

<style name="Widget.AppCompat.Light.Base.ActionBar.Solid"
       parent="Widget.AppCompat.Light.Base.ActionBar">
    <item name="background">@drawable/abc_ab_solid_light_holo</item>
    <item name="backgroundStacked">@drawable/abc_ab_stacked_solid_light_holo</item>
    <item name="backgroundSplit">@drawable/abc_ab_bottom_solid_light_holo</item>
</style>

我也找到了答案:

AppCompat Actionbar styling

所以IMO,你想要做的是重新设计ActionBar主题的样式(如答案中所示)并给它自己的drawable,它没有阴影。

编辑:我发现这个答案更接近您的问题:

Strange divider with the v7 support actionbar

很抱歉,我无法进一步研究这些属性如何影响效果。

答案 2 :(得分:0)

这适用于AppCompat:

<style name="MyAppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/MyActionBarTheme</item>
</style>

<style name="MyActionBarTheme" parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
    <item name="elevation">0dp</item>
</style>