Android TableLayout: растянуть один столбец и получить два одинаковой ширины - PullRequest
0 голосов
/ 22 сентября 2019

Мне нужно что-то вроде this, где два столбца имеют одинаковую ширину (0 и 2), а другой растягивается, чтобы заполнить оставшееся пространство (столбец 1) .Однако содержимое двух одинаковых столбцов часто меняется, поэтому иногда первые столбцы будут больше, чем другие, и наоборот.Моей первой идеей было использование TableLayout и android:layout_weight, но это не сильно помогло, так как я установил android:layout_weight="1" и android:layout_weight="2" для среднего.

<TableRow
    android:id="@+id/firstRow"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/0"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:text="0" />

    <TextView
        android:id="@+id/1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:gravity="center"
        android:text="1" />

    <TextView
        android:id="@+id/2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:text="2" />
</TableRow>

Есть ли способ сделатьэто просто с помощью макета или программно?

1 Ответ

0 голосов
/ 22 сентября 2019

Вы можете использовать ContraintLayout с горизонтальной цепочкой, используя атрибут app:layout_constraintHorizontal_weight.

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

  <TextView
    android:id="@+id/1"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/2"
    app:layout_constraintHorizontal_weight="2.5"/>

  <TextView
    android:id="@+id/2"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    app:layout_constraintRight_toRightOf="@+id/3"
    app:layout_constraintRight_toLeftOf="@+id/1"
    app:layout_constraintHorizontal_weight="5"/>

  <TextView
    android:id="@+id/3"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    app:layout_constraintLeft_toRightOf="@+id/2"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintHorizontal_weight="2.5"/>

</android.support.constraint.ConstraintLayout>
...