Android - Chiều cao tiêu chuẩn của thanh công cụ


83

Tôi muốn tạo một thanh công cụ trong ứng dụng của mình và tôi đang tự hỏi chiều cao tiêu chuẩn cho thanh công cụ trong Android là bao nhiêu?

Tôi muốn nó đủ lớn cho một ngón tay, nhưng không lớn. Có kích thước tiêu chuẩn không?

Câu trả lời:


201

Tốt nhất nên sử dụng ?attr/actionBarSizenhư @Jaison Brooks đã nhận xét.

Trong nguyên tắc vật liệu , chiều cao đề xuất là 56dp:

Thanh công cụ: 56dp


9
bây giờ là '? android attr / actionBarSize'
Sattar

35

Kích thước tối thiểu được đề xuất cho các phần tử có thể chạm vào là 48 dp, hãy xem trang này để biết các số liệu chi tiết hơn.


40
@nrofis Tôi khuyên bạn nên thiết lập những điều sau trong xml của thanh công cụ android:minHeight="?attr/actionBarSize".
Jaison Brooks

2
nên nó không được nhỏ hơn khi ở chế độ nằm ngang
Zapnologica

6

Ngoài câu trả lời @ vedant1811, bạn có thể lấy theo chương trình actionBarSizetừ các tập tin:

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

2

Bạn có thể sử dụng phương pháp sau để lấy chiều cao AppBar theo chương trình

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

Đối với điện thoại56dpnhư vậy và đối với các thiết bị lớn như máy tính bảng mà bạn có nhiều không gian hơn thì có thể64dp


1

bạn có thể sử dụng tiện ích thanh công cụ đã tồn tại trong android và đặt chiều cao wrap_content, vì vậy sẽ tốt hơn nếu bạn có được kích thước mặc định đi kèm với nó.

đây

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.