Android макет приложения. xml содержит 3 три строки. 1-й и 2-й ряды (каждый) состоят из 4 ячеек, 3-й ряд состоит из 2 ячеек (TextViews
). Цель состоит в том, чтобы охватить 2 TextViews
в 3-м ряду на всем ряду. Эти 2 TextViews
имеют разную длину, поэтому layout_span
(охватывающий каждый из 2 элементов в 2 ячейках) не дает желаемого эффекта. Некоторое улучшение достигается с помощью weight
, но составной 3-й ряд оказывает некоторое влияние на 1-й и 2-й ряды.
Я решаю эту проблему, заключив 3-й ряд в внутренний TableLayout
(вместо 3-го TableRow
):
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/sunrizeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@id/sunrizeValue"
android:text="@string/sunrize_string" />
<EditText
android:id="@+id/sunrizeValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:importantForAutofill="no"
android:inputType="time"
android:textIsSelectable="true" />
<TextView
android:id="@+id/middayLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@id/middayValue"
android:paddingHorizontal="5dp"
android:text="@string/midday" />
<EditText
android:id="@+id/middayValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:enabled="false"
android:importantForAutofill="no"
android:inputType="time"
android:textIsSelectable="true" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/sunsetLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@id/sunsetValue"
android:text="@string/sunset_string" />
<EditText
android:id="@+id/sunsetValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:importantForAutofill="no"
android:inputType="time"
android:textIsSelectable="true" />
<TextView
android:id="@+id/midnightLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@id/midnightValue"
android:paddingHorizontal="5dp"
android:text="@string/midnight" />
<EditText
android:id="@+id/midnightValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:enabled="false"
android:importantForAutofill="no"
android:inputType="time"
android:textIsSelectable="true" />
</TableRow>
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/daylightLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@id/daylightValue"
android:text="@string/daylight" />
<EditText
android:id="@+id/daylightValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:importantForAutofill="no"
android:inputType="time"
android:textIsSelectable="true" />
</TableRow>
</TableLayout>
</TableLayout>
Однако появляется некоторое неприятное сообщение: TableRow
во внутреннем TableLayout
считается бесполезным, и я Советую убрать на них. Логика c такого поведения понятна, но в этом случае необходимы и TableLayout
, и его TableRow
. Итак, вопрос: есть ли способ избежать этого сообщения, не подавляя?