RelativeLayout Два текстовых представления по центру над кнопками

Итак, в моем макете у меня есть две кнопки в одной строке, одна с выравниванием по левому краю, а другая с выравниванием по правому краю. У меня также есть TextViews над кнопками, которые служат метками, но они тоже выровнены по левому и правому краю соответственно. Я бы хотел, чтобы они располагались по центру над кнопками и на одной линии друг с другом, но я не могу понять, как это сделать без явной установки координат, которые затем сломаются на некоторых телефонах. Я пытался установить различные веса и параметры макета, но это просто не работает так, как мне хотелось бы. Есть ли способ сделать это в RelativeLayout? А может быть, это просто невозможно.

Заранее спасибо.


person Matt    schedule 11.02.2011    source источник


Ответы (2)


Я только что попробовал два уровня RelativeLayers, и вот результат: введите здесь описание изображения

и код:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/relativeLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView2"
            android:layout_centerHorizontal="true"
            android:text="Label longer than the button" >
        </TextView>

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:text="Button short" >
        </Button>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" >

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView2"
            android:text="Button some longer" >
        </Button>

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="Test" >
        </TextView>
    </RelativeLayout>
</RelativeLayout>
person Adinia    schedule 11.02.2011

Создайте макет таблицы с 2 столбцами и 2 строками.

Сделайте первый и последний столбцы сжимаемыми, а средний столбец — растягиваемым.

|----|-------------------|-----|
|  1 |                   |  2  |
|----|-------------------|-----|
|  3 |                   |  4  |
|----|-------------------|-----|

Поместите метки на 1 и 2, а кнопки на 3 и 4. Затем отцентрируйте все содержимое столбца.

person DKIT    schedule 11.02.2011
comment
Спасибо, это то, о чем я изначально думал, но я надеялся использовать RelativeLayouts и избегать TableLayouts. - person Matt; 11.02.2011