2016-02-11 17 views
11

Aggiungo il Toolbar all'interno della mia app ma sembra che abbia un problema. Nell'app dovrei avere un pulsante che si trova sulla destra dello schermo e il titolo al centro. Ma quando approfondisco l'app dovrei visualizzare la freccia indietro a sinistra, facendo getSupportActionBar().setDisplayHomeAsUpEnabled(). E questo funziona bene, ma quando aggiungo il pulsante indietro il testo si sposta a destra in modo che il pulsante Indietro possa avere un po 'di spazio, immagino. Qualcuno può dirmi come posso avere il mio pulsante sulla destra e il titolo sempre al centro, non importa se il pulsante Indietro è visualizzato o no?Barra strumenti allinea il titolo al centro con il pulsante posteriore

Ecco toolbar codice del layout xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:padding="5dp" 
    tools:ignore="MissingPrefix"> 

    <RelativeLayout 
     android:id="@+id/toolbar_info_holder" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:gravity="center" 
      android:textColor="@color/actionbar_title_color" /> 

     <ImageView 
      android:id="@+id/toolbar_image" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" /> 

     <TextView 
      android:id="@+id/toolbar_count" 
      android:layout_width="13dp" 
      android:layout_height="13dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:background="@drawable/red_circle" 
      android:gravity="center" 
      android:text="4" 
      android:textColor="@color/white" 
      android:textSize="9sp" /> 
    </RelativeLayout> 

</android.support.v7.widget.Toolbar> 
+1

Solo qualche soluzione, ma un'idea breve e costosa sarebbe quella di aggiungere la freccia indietro nel layout, nascondere, mostrare e controllare il comportamento da soli. – yennsarah

+1

@Amy sì, ma è una buona pratica. Sto cercando una soluzione che dovrebbe essere buona, quindi posso usarla in futuro e aiuterà anche gli altri –

+0

Se non ci sono altre possibilità, potrebbe essere una buona pratica. Altrimenti, questa era solo un'idea per una soluzione rapida. :) – yennsarah

risposta

0

Prima di tutto, alcuni suggerimenti generali. Questo è lo scopo esatto dietro l'Android Hierarchical view. Usalo per capire che cosa è l'oggetto contenitore del pulsante Indietro, come tutto si combina, ecc.

Sospetto che tu possa risolvere il tuo problema in parte modificando alcune delle wrap_content in match_parent. In particolare, sospetto che cambiarlo nel tuo RelativeLayout per il layout_width farà il trucco. Ma anche se così non fosse, usa la vista Gerarchica per capire meglio esattamente cosa succede quando stai giocando e dovrebbe aiutarti a indirizzarti nella giusta direzione.

5

Quello che ha funzionato per me è quello di impostare:

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center" 
android:gravity="center" 

alla vista del bambino della Barra degli strumenti, che è un LinearLayout per me (e un RelativeLayout per voi). Sembrava strano per me prima, ma funziona così non mi lamenterò.

+0

Sicuramente non è la risposta a questo problema – josemigallas

Problemi correlati