AppCompat ActionBar主题微调器下拉列表

use*_*486 4 android themes styles android-appcompat material-design

我正在升级应用程序以使用AppCompat v7 21.0.0.

我还没有迁移到工具栏,而是试图主题Window装饰ActionBar.我在操作栏中使用NAVIGATION_MODE_LIST和ShareActionProvider.导航模式设置如下:

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
Run Code Online (Sandbox Code Playgroud)

然而,旋转器下拉覆盖旋转器并且是黑暗的.以下是该问题的图片:http://i.stack.imgur.com/kNwdm.png

我希望下拉菜单显示在操作栏下方并且大于微调器.我试图在很多方面调整主题但我没做什么似乎对微调器下拉列表有任何影响.

这是主题

<style name="AppTheme.Blue" parent="@style/Theme.AppCompat.Light.DarkActionBar">
  <item name="colorPrimary">@color/theme_blue</item>
  <item name="colorPrimaryDark">@color/theme_blue_dark</item>
  <item name="colorAccent">@color/theme_blue_accent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

同一操作栏中的ShareActionProvider显示与此问题有关的工具栏相同的问题,因此迁移到工具栏将无法解决这两个问题: AppCompat ToolBar popupTheme未在ShareAction MenuItem中使用

Gab*_*tti 5

使用api21时,setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)不推荐使用该方法,然后小心使用它.

http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setNavigationMode(int)

这个答案并不能解决您的问题,但它是使用新Toolbar类实现它的另一种方法.工具栏是一个ViewGroup,因此您可以在其中使用Spinner.

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_actionbar"
        android:layout_height="?attr/actionBarSize"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary">

    <Spinner
            android:id="@+id/spinner_toolbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用工具栏作为操作栏:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)

最后,您必须禁用工具栏中的标题:

getSupportActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)