Android: как создать этот простой макет?

Мне нужно создать простой макет с двумя виджетами формы (например - две кнопки). Первый должен заполнять всю доступную ширину родительского макета, а второй должен иметь фиксированный размер.

Это то что мне нужно:

Если я установлю FILL_PARENT для первого виджета - я не вижу второй. Это просто уносит из области просмотра макета:) Я не знаю, как это исправить...

2 ответа

Решение

Самый простой способ сделать это - использовать layout_weight с LinearLayout, Обратите внимание на ширину первого TextView "0dp", что означает "игнорируй меня и используй вес". Вес может быть любым числом; поскольку это единственное взвешенное представление, оно будет расширяться, чтобы заполнить доступное пространство.

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
    <TextView
        android:layout_width="25dp"
        android:layout_height="wrap_content"
        />
</LinearLayout>

Вы можете сделать это с помощью RelativeLayout или FrameLayout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="5dp"
        android:background="#ccccee"
        android:text="A label. I need to fill all available width." />

    <TextView
        android:layout_width="20dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:paddingRight="5dp"
        android:background="#aaddee"
        android:text=">>" />

</RelativeLayout>

Как выглядит макет

Другие вопросы по тегам