我正在使用 Android appcompat 库来创建自定义操作栏。这一切都有效。在不使用 v11 主题(值文件夹)的设备上,不会出现不应出现的底部边框。但是当 v11+ 设备使用主题(当然在 values-v11 文件夹中)时,会有一个底部边框。这是一个 1dp 类型的细边框。我为操作栏应用了一个自定义背景,这一切都适用于版本 < v11,只是在 v11+ 设备上添加了一个烦人的额外底部边框;-]
现在我通过另一篇 SO 文章发现用户使用 ActionBarSherlock 的基本主题需要是 Theme.X 而不是 theme.X.Light.x 来解决这个问题(没有解释为什么)。我应用了同样的逻辑(我使用的是 android 的 appcompat,而不是 sherlock 的),它适用于删除边框,但随后出现了其他样式问题,例如单选按钮等,采用了非浅色主题。所以我想将基本主题保留为“Theme.AppCompat.Light”,并去掉操作栏上的底部边框。同样,它不会出现在 < v11 的设备上。
屏幕截图(Theme.AppCompat.Light/Theme.AppCompat):
我的主题(在 values 文件夹中相同减去 android 前缀):
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Application theme. -->
<style name="ActionTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="android:windowActionBar">true</item>
</style>
<style name="ActionBarStyle" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:displayOptions"></item>
<item name="android:background">@drawable/header_style</item>
<item name="android:titleTextStyle">@style/ActionBarTitleText</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:height">70dp</item>
</style>
<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color_dark_blue</item>
</style>
</resources>