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?

Nrofis
quelle

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

vedant
quelle
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 .

Molnarm
quelle
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());
}
repitch
quelle
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;
}
guy.gc
quelle
2

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

Mahdi-Malv
quelle
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>
Rooh Al-Mahaba
quelle