Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改actionbar微调器主题_Android_Android Layout - Fatal编程技术网

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);