7

Voglio raggiungere questo obiettivo:Come impostare l'altezza della barra degli strumenti Android?

Quello che ho pensato è stato quello di fare una barra degli strumenti personalizzata con un'altezza più grande e lavorare con il tabhost e tabpager normalmente. L'ho implementato, ma la barra degli strumenti mostra l'altezza normale, quindi non mostra come voglio, solo la parte superiore. È questo l'approccio giusto o è possibile impostare un TabHost sotto un layout lineare/relativo? Perché non ho bisogno di lavorare con esso come barra delle azioni.

relativo codice

toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbarTitle" 
    android:orientation="vertical" 
    android:background="@color/black" 
    android:layout_width="match_parent" 
    android:fitsSystemWindows="true" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/AppTheme" 
    android:layout_height="wrap_content"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <ImageView 
     android:id="@+id/img_logo" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="55dp" 
     android:scaleType="centerInside" 
     android:src="@drawable/logo_home" 
     /> 

    <TextView 
     android:id="@+id/txt_version" 
     android:text="@string/app_version" 
     android:textColor="@color/white" 
     android:layout_below="@+id/img_logo" 
     android:paddingBottom="10dp" 
     android:paddingTop="15dp" 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
    </RelativeLayout> 
</android.support.v7.widget.Toolbar> 

E questa funzione nel Activity:

private void setupActionBar() 
    { 
     ActionBar ab = getSupportActionBar(); 
     ab.setDisplayShowCustomEnabled(true); 
     ab.setDisplayShowTitleEnabled(false); 
     LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflator.inflate(R.layout.toolbar_title, null); 
     ab.setCustomView(v); 
    } 
+0

Si utilizza la 'ActionBar'. Dov'è il tuo codice 'Toolbar'? Puoi impostare l'altezza qui 'android: minHeight ="? Attr/actionBarSize "' nel tuo XML. Usa l'altezza e non il peso minimo. –

risposta

11
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/toolbarTitle" 
android:orientation="vertical" 
android:background="@color/black" 
android:layout_width="match_parent" 
android:fitsSystemWindows="true" 
android:minHeight="?attr/actionBarSize" //pay attention here 
android:theme="@style/AppTheme" 
android:layout_height="wrap_content"> //pay attention here 

tua ToolBar quali è un ViewGroup è wraping la sua altezza attorno ai suoi figli che significa che otterrà una dimensione fissa solo se i figli sono misurati. la tua altezza minima è di circa 50 a 60dip, cioè quanto sarà basso il tuo ToolBar. quindi se la vostra altezza dei bambini non si sommano ad un numero ragionevole grande sarà ancora <= 50

dargli un'altezza preferita android:layout_height="200dp"

0

Usa qualche tema con nessuna barra di azione per questa attività o la intera app se non hai bisogno di funzionalità della barra delle azioni (come Theme.Holo.NoActionBar). È possibile aggiungere il layout della barra superiore direttamente nel layout radice delle attività. Se lo utilizzerai in altre attività, considera la possibilità di creare file xml separati per il layout o persino la tua classe ActionBarView.

Problemi correlati