我在我的操作栏上使用下拉导航,当使用深色操作栏时,我无法为相应的文本获得合理的颜色。操作栏本身是深灰色的,文字颜色是黑色的,所以很难阅读。
我遵循了操作栏开发人员指南上的基本说明,所以我的代码很简单
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
// TODO
return false;
}
};
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(mSpinnerAdapter, navigationListener);
我的styles.xml 很简单
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
</style>
</resources>
我认为这应该给了我一些明智的东西,但如下图所示,它在深灰色背景上显示为黑色文本,所以它不好。
我尝试使用 styles.xml 文件来尝试解决问题。我最好的尝试是以下
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionDropDownStyle">@style/myActionDropDownStyle</item>
<item name="android:actionBarStyle">@style/myActionBar</item>
</style>
<style name="myActionDropDownStyle" parent="android:style/Widget.Holo.Light.Spinner">
<item name="android:background">@color/LightCyan</item>
</style>
<style name="myActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:titleTextStyle">@style/myActionBar.titleTextStyle</item>
</style>
<style name="myActionBar.titleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse">
<item name="android:textColor">@color/Orange</item>
</style>
</resources>
这是(1)能够将应用标题的文本颜色更改为橙色,(2)能够将操作栏中所选导航项的背景颜色更改为浅蓝色,(3)能够更改背景颜色的下拉菜单,以便至少在浅色背景下显示黑色文本。但是,对于操作栏中显示的所选项目或下拉菜单中显示的项目,我所做的任何操作都不会更改文本颜色本身。我最好的尝试也看起来很糟糕:-(!
我想要的只是一个深色操作栏,其中显示在操作栏中的所选项目的文本颜色合理,这应该与选择项目时使用的文本颜色相同,并且在项目被选中时使用下拉菜单的背景颜色被选中的颜色与操作栏相同。但是我不知道该怎么做,有人可以帮忙吗?
仅供参考,我正在使用 Eclipse 和我最近下载的 adt-bundle (adt-bundle-windows-x86_64-20130219)。当我搜索解决方案时,我发现了很多关于 Sherlock 操作栏的信息,但是,Sherlock 的样式不包含在那个 adt-bundle 中。无论如何,我使用的 Holo.Light.DarkActionBar 肯定可以实现我想要的吗?