我的活动主题如下:Theme.AppCompat.Light.DarkActionBar
。因此,操作栏标题和"更多"选项菜单项都是白色的,正如我所料:
但是,正如您从屏幕截图中看到的,下拉菜单有黑色背景。我希望下拉菜单背景为灰色(见下面的截图)。
我注意到下拉菜单的样式与活动的一般样式有关,例如,如果活动样式更改为:Theme.AppCompat.Light
,那么它现在看起来像这样:
{{3}}
这正是我正在寻找的那种风格,但正如你可能已经注意到的那样,动作栏标题和"更多"选项现在是黑色的,因为这种主题很有意义但不再是我需要的。
现在,我知道有几种方法可以解决这种情况:第一种方法是根本不使用导航模式列表,因为它已经被弃用,另一种方法是使用Toolbar
并且其中包含Spinner
,两种风格。但在走这条路之前,我想确保可能有更简单的方法。
我尝试使用Theme.AppCompat.Light
:
<style name="LightTheme" parent="Theme.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);
但遗憾的是没有效果。
那么,是否可以更改下拉菜单的样式而不影响其他组件,例如:动作栏?
答案 0 :(得分:2)
您始终可以在应用程序的style.xml
内设置工具栏属性的主题。我建议使用无操作栏样式,您可以在工具栏中为调整器设置样式,但由于您没有使用它,您可以直接在主题中设置样式。
对于微调器样式,您可以在主应用主题中添加或特定:
<item name="android:spinnerStyle">@style/Theme.AppCompat.Light</item>
<item name="spinnerStyle">@style/Theme.AppCompat.Light</item>
对于弹出式样式:
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>