Android Barra degli strumenti per API 19? (per API 21 funziona ok)

Ho usato Come faccio a utilizzare DrawerLayout per visualizzare oltre la ActionBar/Barra degli strumenti sotto la barra di stato?
risposta di Suyash (ho anche aggiunto una barra degli strumenti, forse erroneamente) a mettere in Navigazione Cassetto su “action bar”.

Per API di livello 21, invece di “action bar” ho usato la barra degli strumenti, e funziona benissimo.

Ma per API 19 questo non funziona:

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

Avete idea di come posso mettere il NavigationDrawer su “actionbar” (o barra degli strumenti) per l’API di livello 19?

Prima di aggiungere la barra degli strumenti nella soluzione di Suyash, sembrava proprio come : hideActionBar + android:windowTranslucentStatus. Per api21 action bar spariti, per api19 non cambiare se non sempre grigio. Ho fatto qualcosa torto?

InformationsquelleAutor tauri | 2015-03-14

2 Replies
  1. 7

    Se si utilizza la Barra degli strumenti, quindi si dovrebbe essere in grado di visualizzare esattamente la stessa Barra degli strumenti in qualsiasi API.

    Per farlo si dovrebbe avere un XML in 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"/>

    E nel layout principale si dovrebbe includere:

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

    Inoltre, si dovrebbe impostare il vostro stile, Nessuna Azione Barra styles.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>

    Ma per API 21 si dovrebbe avere un altro styles.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>

    E, infine, nella vostra Attività Principale

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

    E, infine, a qualsiasi cosa che si vuole fare per la barra degli strumenti, è necessario ottenere e trattare come la vecchia Barra di Azione:

    getSupportActionBar().setHomeAsUpEnabled(true);
    Cambiare il tema di API 21 da AppCompat per qualcosa di diverso non è necessaria (e in realtà si rompe molto di tematizzazione di ActionBarActivity).
    Grazie per l’aiuto. Sembrava che non ho aggiunto per styles.xml <style name=”AppBaseTheme” parent=”il Tema.AppCompat.Luce.NoActionBar”></stile>.
    Io uso AppCompat barra degli strumenti per il mio progetto (come dici tu). ma per abbassare le Api (inferiore a 20),la mia app ha smesso.perché?
    si può fornire alcuni dati utili? Come l’eccezione che stai ricevendo.
    questo perché sono sicuro che non sei configurazione del styles.xml file in modo corretto. Provare a impostare Alcuna Barra di Azione. Controllare attentamente la mia risposta.

    InformationsquelleAutor Joaquin Iurchuk

  2. 4

    Progettazione di materiale per la Pre-lecca-lecca Dispositivi :

    Tutti i temi (che vuole un Action Bar/Barra degli strumenti) deve ereditare
    dal Tema.AppCompat. Ci sono delle varianti, tra cui Light
    e NoActionBar.

    Durante il gonfiaggio di tutto per essere visualizzati su azione
    bar (come un SpinnerAdapter per la lista di navigazione nella barra degli strumenti),
    assicurarsi di che utilizzare la barra di azione a tema contesto, recuperato tramite
    getSupportActionBar().getThemedContext().


    Android Support Library 22.1 :

    AppCompat consente di utilizzare android:tema per le Barre degli strumenti (deprecando
    app:tema utilizzato in precedenza) e, ancora meglio, porta android:tema
    supporto per tutti i punti di vista su API 11+ dispositivi.

    InformationsquelleAutor Amit Vaghela

Lascia un commento