Как заставить представление в TableRow расширяться шире, чем остальные элементы в таблице?
У меня есть TableLayout из 2 столбцов, заполняющий всю ширину фрагмента, но я хочу, чтобы определенный элемент (пользовательский индикатор выполнения) был жадным и занимал максимально возможную ширину, вплоть до ширины самой таблицы, например, так:
_______________________________
|Text1-1|Value1-2 | |
|Text2-1|Value2-2 | |
|Text3-1|Value3-2=============|
Проблема в том, что остальные строки довольно короткие по сравнению с областью, зарезервированной для таблицы, и я не могу заставить индикатор выполнения выходить за пределы самой широкой точки его назначенного столбца.
Сначала я попытался поместить индикатор выполнения и связанный с ним текстовый просмотр в LinearLayout с диапазоном 2:
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 3-1" />
<LinearLayout
android:layout_span="2"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Value3-2" />
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100" />
</LinearLayout>
</TableRow>
LinearLayout не расширяется за пределы ширины столбца 2, предположительно потому, что отсутствует столбец 3, поскольку все строки имеют 2 дочерних элемента:
_______________________________
|Text1-1|Value1-2 | |
|Text2-1|Value2-2 | |
|Text3-1|Value3-2=| |
Затем я удалил LinearLayout, сделав индикатор выполнения третьим дочерним элементом его TableRow:
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 3-1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Value3-2" />
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100" />
</TableRow>
Теперь индикатор выполнения отображается в "столбце 3", но использует только произвольную короткую длину, несмотря на наличие "fill_parent":
______________________________
|Text1-1|Value1-2| |
|Text2-1|Value2-2| |
|Text3-1|Value3-2|=== |
Как мне сказать ему использовать всю доступную ширину, зарезервированную таблицей?
1 ответ
Надеюсь, я правильно понял ваш вопрос. Попробуйте установить
android:layout_weight="1"
для тебя LinearLayout
в TableRow