7

Ich möchte, dies erreichen:Wie wird die Höhe der Android-Symbolleiste festgelegt?

Was ich dachte, war eine benutzerdefinierte Symbolleiste mit einer größeren Höhe zu machen und in der Regel mit dem TabHost und tabpager arbeiten. Ich habe es umgesetzt, aber die Symbolleiste, um die normale Höhe angezeigt wird, so dass es nicht zeigen, wie ich will, nur das Oberteil. Ist dies der richtige Ansatz oder ist es möglich, einen TabHost unterhalb eines linearen/relativen Layouts zu setzen? Weil ich nicht als Aktionsleiste damit arbeiten muss.

Relevante-Code

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> 

Und diese Funktion in der Aktivität:

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

Sie die 'ActionBar' verwenden. Wo ist der 'Toolbar'-Code? Sie können die Höhe hier 'android gesetzt: minHeight = "attr/actionBarSize"' in Ihrem XML. Verwenden Sie Höhe und nicht minHeight. –

Antwort

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 

Ihre ToolBar das ist ein ViewGroup seine Höhe Sinn um ihre Kinder ist wraping wird es nur eine feste Größe, wenn die Kinder werden gemessen. Ihre Mindesthöhe ist um 50-60dip, das ist, wie niedrig Ihr ToolBar sein wird. so, wenn Ihre Kinder die Höhe einer angemessenen großen Zahl nicht aufaddieren wird es noch <= 50 sein

geben ihm eine gewünschte Höhe android:layout_height="200dp"

0

Verwenden einig Thema ohne Aktionsleiste für diese Aktivität oder die ganze App, wenn Sie die Funktionalität der Aktionsleiste nicht benötigen (wie Theme.Holo.NoActionBar). Sie können das Layout Ihrer oberen Leiste direkt in Aktivitäten Wurzel Layout hinzuzufügen. Wenn Sie es in anderen Aktivitäten werden dann erwägen, separate XML-Dateien für das Layout oder sogar Ihre eigene ActionBarView Klasse.

Verwandte Themen