AppCompat ActionBar主题微调器下拉列表

时间:2014-10-23 05:55:54

标签: android styles themes android-appcompat material-design

我升级应用以使用AppCompat v7 21.0.0。

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

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

然而,旋转器下拉覆盖旋转器并且是黑暗的。这是问题的图像: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>

同一操作栏中的ShareActionProvider显示与此工具栏问题相同的问题,因此迁移到工具栏无法解决这两个问题: AppCompat ToolBar popupTheme not used in the ShareAction MenuItem

1 个答案:

答案 0 :(得分: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>

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

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(toolbar);

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

getSupportActionBar().setDisplayShowTitleEnabled(false);