Как заставить представления заполнять всю ширину своего родителя в приложении для Android?
У меня есть следующий макет, определенный для одного из моих действий:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent">
<EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText>
</TableRow>
<TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:layout_width="fill_parent">
<Button android:id="@+id/Tile" android:text="Tile"></Button>
</TableRow>
</TableLayout>
Макет выглядит почти правильно, единственная проблема заключается в том, что мое текстовое поле и моя кнопка не занимают полную ширину их соответствующих строк.
Я попытался указать fill_parent
для свойств ширины макета, но безрезультатно, они все еще занимают примерно половину экрана.
Документация в целом для Android до сих пор была отличной, но есть несколько сценариев, подобных этой, где я ударил невидимую стену! Спасибо за помощь!
Ответы
Ответ 1
Попробуйте использовать android:stretchColumns="0"
(когда вы определяете TableLayout
) или какой-либо индекс столбца, который вы хотите растянуть.
Для получения дополнительной информации - http://developer.android.com/guide/tutorials/views/hello-tablelayout.html
Ответ 2
Попробуйте это в определении вашего TableRow:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
Ответ 3
Используйте android:layout_width="match_parent"
в своих табличных представлениях.
Теперь у вас есть разные возможности в вашем TableLayout, устанавливающие параметр android:stretchColumns
:
Value "*"
виды будут иметь одинаковую ширину и заполнят строку, занимающую одно и то же пространство
Value "0" or other integer
→ Сначала или элемент, соответствующий целому числу в строке, заполнит строку. Другой вид будет иметь ширину таким же образом wrap_content
Пример с табличной выкладкой из 3 таблиц с двумя видами:
Без настройки android:stretchColumns
:
[|TextView|EditText| ]
[|TextView|EditText| ]
[|TextView|EditText| ]
Android: stretchColumns = "*"
[| TextView | EditText |]
[| TextView | EditText |]
[| TextView | EditText |]
Android: stretchColumns = "0"
[| TextView |EditText|]
[| TextView |EditText|]
[| TextView |EditText|]
Android: stretchColumns = "1"
[|TextView| EditText |]
[|TextView| EditText |]
[|TextView| EditText |]