Android - Standardhöhe der Symbolleiste


82

Ich möchte eine Symbolleiste in meiner App erstellen und frage mich, wie hoch die Standardhöhe für die Symbolleiste in Android ist.

Ich möchte, dass es groß genug für einen Finger ist, aber nicht groß. Gibt es Standardgröße?

Antworten:


196

Es ist am besten zu verwenden, ?attr/actionBarSizewie @Jaison Brooks kommentierte.

In den Materialrichtlinien wird eine Höhe von 56 dp empfohlen:

Symbolleiste: 56dp


9
es ist jetzt '? android attr / actionBarSize'
Sattar

35

Die empfohlene Mindestgröße für berührbare Elemente beträgt 48 dp. Weitere Informationen finden Sie auf dieser Seite .


40
@nrofis Ich würde vorschlagen, Folgendes in der XML-Datei der Symbolleiste festzulegen android:minHeight="?attr/actionBarSize".
Jaison Brooks

2
sollte es im
Querformat

6

Zusätzlich zur Antwort @ vedant1811 können Sie programmgesteuert actionBarSizevon attrs abrufen:

TypedValue tv = new TypedValue();
if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}

2

Mit der folgenden Methode können Sie die AppBar-Höhe programmgesteuert abrufen

private static final int DEFAULT_TOOLBAR_HEIGHT = 56;

private static int toolBarHeight = -1;

public static int getToolBarHeight(Context context) {
        if (toolBarHeight > 0) {
            return toolBarHeight;
        }
        final Resources resources = context.getResources();
        final int resourceId = resources.getIdentifier("action_bar_size", "dimen", "android");
        toolBarHeight = resourceId > 0 ?
                resources.getDimensionPixelSize(resourceId) :
                (int) convertDpToPixel(DEFAULT_TOOLBAR_HEIGHT);
        return toolBarHeight;
    }

public static float convertDpToPixel(Context context, float dp) {
    float scale = context.getResources().getDisplayMetrics().density;
    return dp * scale + 0.5f;
}

2

Für Telefone ist es 56dpund für große Geräte wie Tablets, für die Sie mehr Platz haben könnten64dp


1

Sie können das Symbolleisten-Widget verwenden, das bereits in Android vorhanden ist, und die Höhe wrap_content eingeben, damit Sie die mitgelieferte Standardgröße erhalten.

Hier

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="@color/dark_cerulean">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingEnd="16dp"
        android:paddingStart="16dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="end"
        android:gravity="end"
        android:layout_marginEnd="16dp"
        android:textColor="@color/white"
        android:id="@+id/toolbar_title" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/image1"
            android:id="@+id/image"/>

    </LinearLayout>


</android.support.v7.widget.Toolbar>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.