【发布时间】:2012-11-12 08:12:27
【问题描述】:
我一直在开发的应用程序使用了ActionBarSherlock,主旋律继承自Theme.Sherlock.Light.DarkActionBar。该设计要求溢出菜单弹出窗口具有深色背景和白色文本。这适用于没有物理菜单按钮的设备,并且文本按预期显示为白色。但是,如果设备有物理菜单按钮,则显示的菜单中显示的文本仍为黑色。
我的主题包含
<item name="android:panelBackground">@drawable/menu_hardkey_panel</item>
...@drawable/menu_hardkey_panel 是一个深色的 9patch。
菜单弹出的最终外观是...
我无法确定为什么会发生这种情况,或者如何手动更改文本的颜色。在我的主题中,我尝试了以下所有方法...
<item name="android:actionMenuTextColor">@android:color/white</item>
<item name="android:textAppearanceLargePopupMenu">@style/MyMenuTextAppearance.Large</item>
<item name="android:textAppearanceSmallPopupMenu">@style/MyMenuTextAppearance.Small</item>
我试过了
<item name="android:actionBarWidgetTheme">@style/Theme.MyApp.Dark</item>
...Theme.MyApp.Dark 在哪里...
<style name="Theme.MyApp.Dark" parent="@style/Theme.Sherlock">
<item name="android:dropDownListViewStyle">@style/DropDownListView</item>
<item name="dropDownListViewStyle">@style/DropDownListView</item>
</style>
没有人让我将文本更改为白色。如果我让我的基本主题继承自 Theme.Sherlock,问题就解决了,文本是白色的,但不幸的是,这不是一个选项。
【问题讨论】:
-
您是否尝试过使用
android和不使用android?例如:<item name="actionMenuTextColor">@android:color/white</item>和<item name="android:actionMenuTextColor">@android:color/white</item>??? -
当然有。唉,这并没有解决问题。
-
我有一个带有 ICS 和一个菜单按钮的 HTC Sensation。我在 github.com/commonsguy/cw-omnibus/tree/master/EmPubLite/… 测试了 Commonsware 的代码,它使用 Theme.Sherlock.Light.DarkActionBar,但我没有你描述的问题。也许您想尝试该代码(它是一个非常小的程序),看看您是否在该应用中也遇到了问题,或者指出它与您的有何不同。
-
据我了解,使用 Light.DarkActionBar 生成的弹出菜单将具有浅色背景和深色文本。我正在开发的应用程序的主题要求弹出菜单具有深色背景和浅色文本。它还要求我使用 Light.DarkActionBar,而不是常规的 Theme.Sherlock,因为应用程序中的几乎所有其他小部件都是“浅色”主题。
-
也许可以试试 ActionBarSherlock 的支持页面:actionbarsherlock.com/support.html。有不同方式获得帮助的链接,包括直接联系 Jake Wharton。
标签: android android-actionbar actionbarsherlock android-menu