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>