webentwicklung-frage-antwort-db.com.de

Android - Standardhöhe der Symbolleiste

Ich möchte eine Symbolleiste in meiner App erstellen, und ich frage mich, wie hoch die Symbolleiste in Android standardmäßig ist. 

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

60
nrofis

Es ist am besten, ?attr/actionBarSize als Kommentar von @Jaison Brooks zu verwenden.

In den Materialrichtlinien ist die empfohlene Höhe 56dp:

Symbolleiste: 56dp

138
vedant

Die empfohlene Mindestgröße für berührbare Elemente beträgt 48 dp, siehe diese Seite für detailliertere Metriken.

33
molnarm

Zusätzlich zur @ vedant1811-Antwort können Sie actionBarSize programmgesteuert von attrs erhalten:

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

Sie können die folgende Methode verwenden, um die Höhe der AppBar programmatisch abzurufen

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
guy.gc

Für Telefone ist es 56dp und für große Geräte wie Tablets bei denen Sie mehr Leerzeichen haben, könnte es 64dp

0
Mahdi-Malv

sie können das Symbolleisten-Widget verwenden, das bereits in Android vorhanden ist, und die Höhe wrap_content angeben. Es empfiehlt sich daher, die Standardgröße zu erhalten, die mit dem Tool geliefert wird.

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>
0
Rooh Al-mahaba