Android макет с постоянной высотой на каждом экране - PullRequest
0 голосов
/ 18 июня 2020

Я создал макет Android, как показано ниже. Он отображает небольшую панель инструментов с 2 кнопками. Панель инструментов расположена внизу. Проблема в том, что на небольших экранах высота панели инструментов и кнопок намного больше, чем на большом экране, что имеет смысл, потому что я использую значения dp. Как мне изменить его так, чтобы панель инструментов визуально всегда имела одинаковый размер на экранах с большей и меньшей высотой? Это означает, что если на больших экранах высота составляет 1 см, то на маленьких экранах она также должна быть 1 см.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:orientation="horizontal">

    <View
        android:id="@+id/keyboard_toolbar_line"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/buttonsLayout"
        android:layout_marginBottom="5dp"
        android:background="#c0c0c0"/>

    <RelativeLayout
        android:id="@+id/buttonsLayout"
        android:orientation="horizontal"
        android:alpha="0.5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/privacyButton"
            android:layout_width="100dp"
            android:layout_height="35dp"
            android:gravity="center"
            android:clickable="true"
            android:focusable="true"
            android:layout_marginStart="30dp"
            android:layout_alignParentStart="true">

            <ImageView
                android:id="@+id/privacyButtonImage"
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:scaleType="fitXY"
                android:clickable="false"
                android:focusable="false"
                android:src="@drawable/ic_lock_open_light_24dp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ratingButton"
            android:layout_width="100dp"
            android:layout_height="35dp"
            android:gravity="center"
            android:clickable="true"
            android:focusable="true"
            android:layout_marginEnd="30dp"
            android:layout_alignParentEnd="true">

            <ImageView
                android:id="@+id/ratingButtonImage"
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:scaleType="fitXY"
                android:clickable="false"
                android:focusable="false"
                android:src="@drawable/ic_star_gray_24" />

        </LinearLayout>

    </RelativeLayout >

</RelativeLayout >

1 Ответ

1 голос
/ 18 июня 2020

Для этого вам нужно установить высоту просмотра на основе dimen в папке значений. Используя это значение dimen, вы можете заархивировать это thig.

В противном случае вы можете использовать эту библиотеку, которая предоставит значение dp в зависимости от размера и разрешения экрана устройства

Ссылка: https://github.com/intuit/sdp

...