我在我的操作栏中有一个导航列表,它具有黑色背景。然而,流行菜单具有白色背景。ActionBar列表导航:标题和弹出菜单中的不同文本颜色
所以我想实现的是,操作栏内的项目文本颜色是白色,而弹出菜单中的项目文本颜色是黑色。
这两个例子是我走到这一步:
这是应该的样子:
有谁知道一个解决方案吗?
这是我的列表导航代码:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, new String[] { "Item 1", "Item 2" });
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(adapter,
new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
return true;
}
});
getSupportActionBar().setSelectedNavigationItem(0)
这是风格,和我一起工作的集合。
<style name="CustomTheme" parent="@style/Theme.customized">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="actionDropDownStyle">@style/CustomSherlockDropDownNav</item>
<item name="android:actionDropDownStyle">@style/CustomSherlockDropDownNav</item>
<!-- didn't work: http://stackoverflow.com/questions/12395381/android-actionbar-navigation-spinner-text-color
<item name="android:spinnerDropDownItemStyle">@style/custom.Widget.DropDownItem.Spinner</item>
<item name="spinnerDropDownItemStyle">@style/custom.Widget.DropDownItem.Spinner</item>
-->
<!-- didn't work: http://stackoverflow.com/questions/11479186/styling-actionbar-dropdown-menu
<item name="android:actionBarWidgetTheme">@style/custom.actionBarWidgetTheme</item>
<item name="actionBarWidgetTheme">@style/custom.actionBarWidgetTheme</item>
-->
<!-- didn't work: http://android-developers.blogspot.de/2011/04/customizing-action-bar.html
<item name="android:dropDownListViewStyle">@style/CustomDropDownListView</item>
<item name="dropDownListViewStyle">@style/CustomDropDownListView</item>
-->
....
</style>
<style name="custom.actionBarWidgetTheme" parent="@style/Theme.Sherlock.Light.DarkActionBar">
<item name="android:spinnerDropDownItemStyle">@style/custom.Widget.DropDownItem.Spinner</item>
</style>
<style name="custom.Widget.DropDownItem.Spinner" parent="@style/Widget.Sherlock.DropDownItem.Spinner">
<item name="android:textAppearance">@style/custom.TextAppearance.Widget.DropDownItem</item>
</style>
<style name="custom.TextAppearance.Widget.DropDownItem" parent="@style/TextAppearance.Sherlock.Widget.DropDownItem">
<item name="android:textColor">#00A000</item>
</style>
<style name="CustomDropDownListView" parent="android:style/Widget.Holo.ListView.DropDown">
<item name="android:textColor">#00A000</item>
<item name="android:textSize">8dip</item>
</style>
<style name="CustomSherlockDropDownNav" parent="@style/Widget.Sherlock.Light.Spinner.DropDown.ActionBar">
<item name="android:popupBackground">@drawable/menu_dropdown_panel_customtab</item>
<item name="android:background">@drawable/spinner_background_ab_customtab</item>
</style>
然而没有什么不奏效。
你是怎么做到这一点的?你可以发布一个工作代码吗? – 2013-09-11 06:13:09
@ user2247689:目前我无法访问源代码。基本上,我从* matthias *提出的建议开始:应用两种不同的布局并为它们设置自定义样式(覆盖'textAppearance';请参阅我的评论)。我建议你看看ActionBarSherlock,因为你可以快速查找链接的样式源。后来我将我的实现更改为* Android-Developer *的解决方案,因为我的应用中有多个“Spinner”。 – Trinimon 2013-09-11 09:48:49
感谢您的回复...我得到的东西工作:) – 2013-09-11 10:44:04