2015-01-11 15 views
11

Il mio sdk di destinazione e di destinazione è 21 e non sto utilizzando la libreria di supporto.Barra degli strumenti Android troppo alta in modalità orizzontale

Sto usando il nuovo widget di Toolbar, e in genere funziona, ho solo un problema tecnico nel suo aspetto. Le icone di azione sono centrate in modalità verticale, mentre la barra degli strumenti in modalità orizzontale è più alta e le icone non sono centrate. Si prega di dare un'occhiata agli screenshots (leggere le linee sono solo per rendere il problema più visibile):

  • ritratto:

portrait mode

  • paesaggio:

landscape mode

Questo potrebbe sembrare niente, ma quando le azioni sono selezionate (come la freccia 'su' alla sinistra della barra) il risultato è che una striscia di pochi pixel sotto di essa è visibile. Non mi piace come sembra.

L'attività non gestisce alcuna modifica della configurazione.

Questo è il mio codice:

  • styles.xml:

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    
        <style name="MyTheme" parent="android:Theme.Material.NoActionBar"> 
         <item name="android:toolbarStyle">@style/MyToolbarStyle</item> 
        </style> 
    
        <style name="MyToolbarStyle" parent="android:Widget.Toolbar"> 
         <item name="android:background">?android:attr/colorPrimary</item> 
         <item name="android:elevation">2dp</item> 
        </style> 
    
    </resources> 
    
  • utilizzo XML:

Ho provato a fare in giro con l'androide: MinHeight attributo, ma impostato su così, sa y, 30dp ha appena spostato le icone ancora più in alto, anche in modalità verticale.

ho trovato questo: https://code.google.com/p/android/issues/detail?id=77874 Ma non c'è attr/actionBarSize ...

Come, se non del tutto, può questo problema essere risolto? Il telefono su cui sono state scattate le schermate è un Nexus 6 (xxxhdpi) e l'icona proviene dal pacchetto di icone di google e la risorsa più grande è xxhdpi. È questo il problema?

Aggiornamento: la soluzione dal collegamento sopra riportato funziona quando utilizzo? Android: attr/actionBarSize. Ma è questo l'unico modo? Sembra un po 'sbagliato, per aver bisogno di soluzioni alternative per un nuovo componente lucido come questo, ancor più che la soluzione alternativa richiede un valore di attributo per un componente da sostituire con quello nuovo.

+0

Potresti mostrare la tua implementazione in codice java? Inoltre non ho visto l'utilizzo del tuo stile? –

+0

Per questo non esiste un codice Java pertinente. Lo stile è impostato su AndroidManifest.xml come tema per l'intera applicazione, quindi ogni barra degli strumenti nell'app utilizza lo stile "MyToolbarStyle". – wujek

+0

A mio parere, Toolbar non è solo usato come siamo abituati ad usare ActionBar, ma può essere molto più alto e visualizzare altre cose all'interno ... Classico ActionBar si riduce di dimensioni in orientamento orizzontale e sposta così leggermente verso l'alto le icone. Quando usi la barra degli strumenti, le icone continuano a essere spostate, ma la dimensione dipende da te. Ora se vuoi una barra degli strumenti alta, probabilmente non vuoi cambiare la dimensione della barra degli strumenti - fuori dal tuo controllo. Solo specificando "? Android: attr/actionBarSize" mi sembra abbastanza ovvio :) – Antimonit

risposta

3

tenta di utilizzare:

android:height="?android:attr/actionBarSize" 

per la vostra barra degli strumenti.

1

Aggiungere questo nel vostro stile barra degli strumenti:

<item name="maxButtonHeight">?attr/actionBarSize</item> 
0

Ho avuto lo stesso problema con android.support.v7.widget.Toolbar.

La mia soluzione:

Metti la tua barra degli strumenti in una RelativeLayout con l'altezza che si desidera per la vostra barra degli strumenti. Imposta le barre degli strumenti layout_height su "wrap_content" e allinearlo al centro verticale. Spero possa essere d'aiuto.

<RelativeLayout 
     android:id="@+id/main_toolbar_relative_layout" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     > 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/main_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      > 
    </android.support.v7.widget.Toolbar> 
</RelativeLayout> 
Problemi correlati