我似乎无法使MediaRoute按钮在我的实心ActionBar中显示为“白色”。我的问题是:我们如何在不更改可绘制名称的情况下设置MediaRoute按钮的浅色或深色样式?查看类似问题:如何更改ActionBar中的MediaRouteButton样式? , 接受的解决方案只是使用自己的一组MediaRoute可绘制对象,并交换名称light<>dark。对于我的应用程序,我有3种不同的样式:light-ActionBar、dark-ActionBar和light solid-ActionBar。我不能简单地交换可绘制对象名称,因为我需要前两个主题的深色和浅色都正确显示。为了正确显示实心ActionBar内容,我正在执行以下操作:(在这里找到示例:http://www.jayway.com/2014/06/02/android-theming-the-actionbar/)
ActionBarWidget主题是必要的,以确保ActionBar溢出图标下拉菜单的背景显示为白色而不是黑色。然而,它会导致MediaRoute按钮更改为它的深色主题绘制,这样做并不适合。
我尝试了覆盖Widget.MediaRouter.MediaRouteButton并强制使用@drawable/mr_ic_media_route_holo_dark,但无论我做什么都没有任何区别。
如何在不更改可绘制名称的情况下使MediaRoute按钮变亮或变暗? 是否有一个简单的样式可以重写,我们可以在其中设置自己的MediaRoute可绘制对象?
//Parent Light.DarkActionBar should give white ActionBar icons
<style name="AppTheme.Solid.Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/Widget.Solid.ActionBar</item>
<item name="android:actionBarWidgetTheme">@style/ActionBarWidget</item>
.
.
//Make the ActionBar solid, but need to use 'inverse' to keep the icons/text white
<style name="Widget.Solid.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
.
.
//**** THE ISSUE IS CAUSED BY USING THE FOLLOWING
//Make the ActionBar dropdown spinner items use the correct (white) theme as well
<style name="ActionBarWidget" parent="Theme.AppCompat.Light.DarkActionBar">
.
.
ActionBarWidget主题是必要的,以确保ActionBar溢出图标下拉菜单的背景显示为白色而不是黑色。然而,它会导致MediaRoute按钮更改为它的深色主题绘制,这样做并不适合。
我尝试了覆盖Widget.MediaRouter.MediaRouteButton并强制使用@drawable/mr_ic_media_route_holo_dark,但无论我做什么都没有任何区别。
如何在不更改可绘制名称的情况下使MediaRoute按钮变亮或变暗? 是否有一个简单的样式可以重写,我们可以在其中设置自己的MediaRoute可绘制对象?