我正在使用带有动作栏的下拉导航,但是在使用深色动作栏时,我无法得到相应文本的明智颜色。动作栏本身是暗灰色的,文本颜色是黑色的,因此很难阅读。我遵循了动作栏开发者指南上的基本说明,所以我的代码只是:
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)更改下拉列表的背景颜色,使黑色文本至少显示在浅色背景上。 但无论我怎么做,都不能更改文本本身的颜色,无论是操作栏中显示的所选项目还是下拉列表中显示的项目。 我的最佳尝试看起来也很糟糕:-(!
我想要的只是一个深色操作栏,并对操作栏中显示的所选项目使用合理的文本颜色,这应该是选择项目时使用的相同文本颜色,并且当选择项目时的下拉菜单的背景颜色与操作栏相同。 但是我无法弄清楚如何做到这一点,有人可以帮忙吗?
顺便说一句,我正在使用最近下载的adt-bundle-windows-x86_64-20130219带有Eclipse的工具包。 当我搜索解决方案时,我发现很多关于Sherlock操作栏的内容,但是Sherlock的样式没有包含在该adt-bundle中。 无论如何,我使用的Holo.Light.DarkActionBar应该能够实现我想要的吧?