Ho trovato molte risposte relative alla barra degli strumenti ma nessuna delle risposte potrebbe aiutarmi.Barra degli strumenti estesa con visualizzazione personalizzata non visualizzata con larghezza intera
Quello che sto cercando di ottenere è di avere una barra degli strumenti estesa che visualizzerà un logo, possibilmente un nome dell'Attività/App, avrà un pulsante di azione/cassetto a destra che visualizzerà una navigazione- come un cassetto a destra, un menu di overflow con altre opzioni come le impostazioni e anche una scheda di navigazione nella parte inferiore che consentirà all'utente di spostarsi tra diversi frammenti (diversi giorni in un mese).
Il modo in cui sto cercando di ottenerlo è tramite la barra degli strumenti. Per prima cosa creo la barra degli strumenti e aggiungo la mia vista personalizzata.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="@dimen/min_double_toolbar_height"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:minHeight="?attr/actionBarSize"
android:background="@color/primary"
app:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
android:clipToPadding="false"
>
<!-- ThemeOVerlay Makes sure the text and items are using solid colors-->
<include
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_gravity="bottom"
layout="@layout/day_navigation_tab"
/>
</android.support.v7.widget.Toolbar>
day_navigation_tab dista orizzontale con due viste dell'immagine con imbottitura di 72dp (come da linee guida) e una vista testo con peso la layout impostato a 1, in modo che si estende per tutto lo spazio disponibile. E un'altezza di 72 dpi.
Ora nel mio BaseActivity XML ho includono la barra degli strumenti nella Framelayout del contesto principale (in caso contrario la barra degli strumenti coprirebbe l'intero schermo per un motivo sconosciuto per me (mi ha portato le età per figre che fuori))
<...ommited>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/app_bar"
/>
</FrameLayout>
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
If you're not building against API 17 or higher, use
android:layout_gravity="left" instead. -->
<!-- The drawer is given a fixed width in dp and extends the full height of
the container. -->
<fragment android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="right"
android:name="alterway.agency.timeentry.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer"
app:layout="@layout/fragment_navigation_drawer"
/>
</android.support.v4.widget.DrawerLayout>
Tuttavia, quando utilizzo la barra degli strumenti, gonfio il menu di ActionBar in onCreateOptionsMenu, la mia vista personalizzata si restringe e non estende il limite delle opzioni create. Una foto qui sotto illustra meglio, Si tratta di uno screenshot da una vista di progettazione in Android Studio. Il rettangolo giallo indica dove saranno posizionati gli elementi di opzione. Viola indica la dimensione originale in DesignView. Il nero indica la dimensione durante l'esecuzione dell'app.
Grazie per qualsiasi aiuto.
Domande correlate che potrebbero essere utili a chiunque si imbatte in questo cercando di risolvere un problema simile:
- design - Support Toolbars custom view not using full width
- How do I set up an extended toolbar on Android L
Come stai aggiungendo il barra degli strumenti per l'attività? Stai usando 'setSupportActionBar (Toolbar)'? –
@Lady_ari: Sì, lo sto facendo. C'è un altro modo? Inoltre, se voglio aggiungere un titolo e un'icona, ecc., Dovrei farlo prima di impostare la barra degli strumenti o dovrei modificare l'oggetto che ottengo quando chiamo getSupportActionBar()? –
Penso che sia meglio usare 'getSupportActionBar()' per modificare il titolo della barra degli strumenti, ecc. –