我正在将我的应用的UI更改为绿色。在ActionBar中,我使用ShareActionProvider与其他用户共享数据,但此菜单项与其他菜单项的颜色不同。但是,它的下拉列表视图具有正确的颜色。
我在GingerBread中运行我的应用程序,所以当我按下菜单键时,会出现一个菜单项,但它的颜色也是错误的。
我使用过Android Action Bar Style Generator,但有些东西我不见了。这是我在/ res / values中的代码:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarItemBackground">@drawable/selectable_background_newtheme</item>
<item name="actionBarStyle">@style/ActionBar.Solid.NewTheme</item>
<item name="popupMenuStyle">@style/PopupMenu.NewTheme</item>
<item name="dropDownListViewStyle">@style/DropDownListView.NewTheme</item>
<item name="actionDropDownStyle">@style/DropDownNav.NewTheme</item>
<!-- Light.DarkActionBar specific -->
<item name="actionBarWidgetTheme">@style/NewTheme.Widget</item>
</style>
<!-- ActionBar style -->
<style name="ActionBar.Solid.NewTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@drawable/action_bar_gradient</item>
</style>
<style name="PopupMenu.NewTheme" parent="@style/Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@drawable/background_gradient</item>
</style>
<style name="DropDownListView.NewTheme" parent="@style/Widget.AppCompat.ListView.DropDown">
<item name="android:listSelector">@drawable/selectable_background_newtheme</item>
</style>
<style name="DropDownNav.NewTheme" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
<item name="android:background">@drawable/spinner_background_ab_newtheme</item>
<item name="android:dropDownSelector">@drawable/selectable_background_newtheme</item>
</style>
<!-- this style is only referenced in a Light.DarkActionBar based theme -->
<style name="NewTheme.Widget" parent="@style/Theme.AppCompat">
<item name="popupMenuStyle">@style/PopupMenu.NewTheme</item>
<item name="dropDownListViewStyle">@style/DropDownListView.NewTheme</item>
</style>
有没有丢失的物品?提前致谢
答案 0 :(得分:3)
我终于让它自己工作了。我不得不补充道:
<item name="android:listChoiceBackgroundIndicator">@drawable/selectable_background_realestate</item>
in * themes_base.xml * in values-v14 and
<item name="listChoiceBackgroundIndicator">@drawable/selectable_background_realestate</item>
在themes_base.xml中按下列表项时正确突出显示颜色的值。
我还必须更改themes_base.xml中的 actionBarItemBackground (值和值-v14)以引用我的drawable,以便共享图标获得相同的突出显示。
最后为了获得下拉菜单项的正确颜色,我必须将 android:popupBackground 更改为 Widget的styles_base.xml(values和values-v14)中的@ drawable / menu_dropdown_panel_realestate。 AppCompat.Base.ListPopupWindow
我在答案中引用的drawable是使用Android Asset Studio为AppCompat
生成的答案 1 :(得分:0)
我想我可以帮你解决姜饼问题。 该菜单在AppCompat样式&amp;中被称为“panel”。主题.XML文件。
所以要用你自己的选择器颜色覆盖它,这就是我的建议:
在自定义主题CustomActionBarTheme
中,添加以下行:
<item name="panelMenuListTheme">@style/Theme.NewTheme.CompactMenu</item>
并添加以下两种样式:
<style name="Theme.NewTheme.CompactMenu" parent="@style/Theme.AppCompat.CompactMenu">
<item name="android:listViewStyle">@style/myCustomMenuStyle</item>
</style>
和
<style name="myCustomMenuStyle" parent="@style/Widget.AppCompat.ListView.Menu">
<item name="android:listSelector">@drawable/newtheme_list_selector_holo_light</item>
</style>
注意:@drawable/newtheme_list_selector_holo_light
是我从Android Holo Colors Generator获得的xml资源。
我建议您使用该网站,顺便说一下,在这种情况下,您只需要“列表选择器”的资源,并从其输出的ZIP文件中获取以下资源,并且把它们放在你的可绘制文件夹中。
具体做法是:
newtheme_list_selector_holo_light.xml &gt;在res / drawable中
newtheme_list_selector_background_transition_holo_light.xml &gt;在res / drawable中
以下.9.png资源的mdpi,hdpi,xdpi和xxdpi:
newtheme_list_selector_disabled_holo_light.9.png
newtheme_list_pressed_holo_light.9.png (类似于png Action Bar Generator创建的)
newtheme_list_longpressed_holo.9.png
newtheme_list_focused_holo.9.png (类似于创建的动作栏生成器)
答案 2 :(得分:0)
稍后它会有所帮助。在GingerBread中,当您按下菜单键时,可以通过以下属性itemBackground
自定义底部显示的菜单项:
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:itemBackground">@drawable/selectable_background_newtheme</item>
</style>
然后,显然要自定义按下的ShareActionProvider
项,您需要以下属性:
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:selectableItemBackground">@drawable/selectable_background_newtheme</item>
</style>