Панель инструментов Android для API 19? (для API 21 работает нормально)

Я Как использовать DrawerLayout для отображения на панели действий / панели инструментов и в строке состояния? ответ Suyash (я также добавил панель инструментов, может быть, неправильно), чтобы поставить навигации через "панель действий".

для уровня API 21 вместо "панели действий" я использовал панель инструментов, и она отлично работает.

но для API 19 это не работает:

    if(Build.VERSION.SDK_INT > 19) {
      final Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
        setSupportActionBar(toolbar);
    }

у вас есть идея, как я могу поставить NavigationDrawer над "actionbar" (или панель инструментов) для API уровень 19?

2 ответов


если вы используете панель инструментов, вы должны иметь возможность просматривать ту же панель инструментов в любом API.

для этого у вас должен быть XML в res / layout:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"/>

и в вашем основном макете вы должны включить его:

<include
    android:id="@+id/app_bar"
    layout="@layout/app_bar" />

также вы должны установить свой стиль как нет панели действий на ваших стилях.в XML

<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primaryDark</item>
    <item name="colorAccent">@color/accent</item>
</style>

но для API 21 у вас должны быть другие стили.XML-код:

<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primaryDark</item>
    <item name="android:colorAccent">@color/accent</item>
</style>

и, наконец, в основной Активность

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

и, наконец, к любой вещи, которую вы хотите сделать на панели инструментов, получить его и относиться к нему как к старой панели действий:

getSupportActionBar().setHomeAsUpEnabled(true);

материальный дизайн для приборов пре-леденца :

все ваши темы (которые хотят панель действий/панель инструментов) должны наследовать от темы.Совместимости приложений. Варианты доступные, включая свет и NoActionBar.

когда надувать все, чтобы быть отображены на действия панель (например, SpinnerAdapter для навигации по списку на панели инструментов), убедитесь, что вы используете тематический контекст панели действий, полученный через getSupportActionBar().getThemedContext ().


Библиотека Поддержки Android 22.1 :

AppCompat позволяет использовать android: тема для панелей инструментов (устаревание приложение: тема, используемая ранее) и, что еще лучше, приносит android: theme поддержка всех представлений на устройствах API 11+.