更改操作栏微调器主题

时间:2017-01-31 17:03:09

标签: android android-layout

我的活动主题如下:Theme.AppCompat.Light.DarkActionBar。因此,操作栏标题"更多"选项菜单项都是白色的,正如我所料:

enter image description here

但是,正如您从屏幕截图中看到的,下拉菜单有黑色背景。我希望下拉菜单背景为灰色(见下面的截图)。

我注意到下拉菜单的样式与活动的一般样式有关,例如,如果活动样式更改为: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);

但遗憾的是没有效果。

那么,是否可以更改下拉菜单的样式而不影响其他组件,例如:动作栏?

1 个答案:

答案 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>