我有一个应用程序,我允许用户更改主题以更改首选项。我只是将Theme.Holo
更改为Theme.Holo.Light
。除了动作栏动作图标外,一切正常。
如何根据主题更改图标?目前,它们在menu.xml
中进行了硬编码,如下所示:
<item android:id="@+id/action_search"
app:showAsAction="collapseActionView|always"
android:icon="@drawable/ic_action_search"
android:orderInCategory="50"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="@string/action_search"/>
<item
android:id="@+id/action_expandall"
android:orderInCategory="55"
app:showAsAction="never"
android:title="@string/action_expandall"/>
<item
android:id="@+id/action_collapseall"
android:orderInCategory="60"
app:showAsAction="never"
android:title="@string/action_collapseall"/>
<item
android:id="@+id/action_selecteverything"
android:orderInCategory="101"
app:showAsAction="never"
android:title="@string/action_selecteverything"/>
<item
android:id="@+id/action_selectallcategories"
android:orderInCategory="102"
app:showAsAction="never"
android:title="@string/action_selectallcategories"/>
<item
android:id="@+id/action_selectallfeeds"
android:orderInCategory="103"
app:showAsAction="never"
android:title="@string/action_selectallfeeds"/>
<item
android:id="@+id/action_selectnone"
android:orderInCategory="104"
app:showAsAction="never"
android:title="@string/action_selectnone"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="105"
app:showAsAction="never"
android:icon="@drawable/action_settings"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_refresh"
android:orderInCategory="107"
app:showAsAction="always"
android:icon="@drawable/navigation_refresh"
android:title="@string/action_refresh"/>
<item
android:id="@+id/action_accept"
android:orderInCategory="108"
app:showAsAction="always"
android:icon="@drawable/navigation_accept"
android:title="@string/action_accept"/>
<item
android:id="@+id/action_logout"
android:orderInCategory="109"
app:showAsAction="never"
android:title="@string/action_logout"/>
<item
android:id="@+id/action_about"
android:orderInCategory="110"
app:showAsAction="never"
android:title="@string/action_about"/>
答案 0 :(得分:1)
一个可行的解决方案是创建两个不同的menu.xml,其中包含浅色和深色图标,在您夸大菜单之前,请检查当前主题是什么,然后选择一个或另一个。
编辑:
@Steven Byle以更美丽的方式(使用主题)解决了这个问题:https://stackoverflow.com/a/14608585/2025299