【发布时间】:2017-02-01 01:13:30
【问题描述】:
我有一个主题如下的活动:Theme.AppCompat.Light.DarkActionBar。结果,操作栏标题和“更多”选项菜单项都是白色的,正如我所料:
但是,正如您从屏幕截图中看到的那样,下拉菜单的背景为黑色。我希望下拉菜单具有灰色背景(请参见下面的屏幕截图)。
我注意到下拉菜单的样式和activity的大体样式有关,比如如果activity样式改成:Theme.AppCompat.Light,那么现在看起来是这样的:
这正是我正在寻找的那种风格,但正如您可能已经注意到的那样,操作栏标题和“更多”选项现在是黑色的,考虑到这种主题是有意义的,但不再是我需要的.
现在,我知道有几种方法可以处理这种情况:第一种方法是根本不使用导航模式列表,因为它已经被弃用,另一种方法是使用 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);
但不幸的是,这没有效果。
那么,有没有一种方法可以在不影响其他组件的情况下更改下拉菜单的样式,例如:操作栏?
【问题讨论】: