Android 更改actionbar微调器主题
我有一个主题如下的活动:Android 更改actionbar微调器主题,android,android-layout,Android,Android Layout,我有一个主题如下的活动:theme.AppCompat.Light.darkaActionBar。因此,操作栏标题和“更多”选项菜单项都是白色的,正如我预期的那样: 但是,从屏幕截图中可以看到,下拉菜单有黑色背景。我想下拉菜单有一个灰色的背景(见下面的屏幕截图) 我注意到,下拉菜单的样式与活动的常规样式相关,例如,如果活动样式更改为:Theme.AppCompat.Light,则现在的样式如下: 这正是我正在寻找的风格,但正如你可能已经注意到的,actionbar标题和“更多”选项现在是黑色
theme.AppCompat.Light.darkaActionBar
。因此,操作栏标题和“更多”选项菜单项都是白色的,正如我预期的那样:
但是,从屏幕截图中可以看到,下拉菜单有黑色背景。我想下拉菜单有一个灰色的背景(见下面的屏幕截图)
我注意到,下拉菜单的样式与活动的常规样式相关,例如,如果活动样式更改为:Theme.AppCompat.Light
,则现在的样式如下:
这正是我正在寻找的风格,但正如你可能已经注意到的,actionbar标题和“更多”选项现在是黑色的,考虑到主题的类型,这是有意义的,但不再是我需要的
现在,我知道有两种方法可以处理这种情况:第一种方法是根本不使用导航模式列表,因为它已经被弃用了,另一种方法是使用工具栏
,并在其中设置一个微调器
,这两种方式都有样式。但在走这条路之前,我想确定是否有更简单的方法
我试图拥有一个从主题.AppCompat.Light
扩展而来的自定义主题:
<style name="LightTheme" parent="Theme.AppCompat.Light" />
但不幸的是,这没有任何效果
那么,有没有一种方法可以在不影响其他组件(例如actionbar)的情况下更改下拉菜单的样式?您可以始终在应用程序的
style.xml
中设置工具栏属性的主题。我建议使用无操作栏样式,在工具栏中可以设置微调器的样式,但由于不使用微调器,因此可以直接在主题中设置微调器的样式
对于微调器样式,您可以将其添加到主应用程序主题或特定应用程序主题中:
@style/Theme.AppCompat.Light
@样式/主题.AppCompat.Light
对于弹出式样式:
@style/ThemeOverlay.AppCompat.Light
完美!非常感谢。
Context context = new ContextThemeWrapper(this, R.style.LightTheme);
CustomAdapter adapter = new CustomAdapter(context);
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(adapter, null);