Ячейки Android TableRow не заполняют ширину - PullRequest
0 голосов
/ 08 марта 2019

В вертикальном LinearLayout у меня есть TableLayout с одной строкой (содержащий 3 счетчика, 1dp LinearLayout, который служит границей, затем еще 3 счетчика), затем другой TableLayout с несколькими динамически генерируемыми строками.

В первой строке TableLayout все ячейки (кроме индекса 3, который является границей) расположены так, что они заполняют всю ширину:

<TableLayout
    android:stretchColumns="0,1,2,4,5,6"
    android:background="#E9AFE9"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

Они на самом деле равномерно распределены и имеют одинаковую ширину.

Во второй строке TableLayout есть некоторое пустое место в конце строки. Я не уверен, почему это происходит, поскольку оба TableLayouts имеют android: stretchColumns = "0,1,2,4,5,6".

<TableLayout
    android:id="@+id/datatable"
    android:stretchColumns="0,1,2,4,5,6"
    android:background="#E9AFE9"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Строка данных определяется в своем собственном файле макета, динамически заполняется и вставляется:

<TableRow
    android:background="#6741AA"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <!-- -->
    <TextView
        android:background="#8fe611"
        android:id="@+id/tv_sample_data"
        tools:text="123.45" />

    <!-- -->
    <TextView
        android:background="#F0998D"
        android:id="@+id/tv_azimuth_data"
        tools:text="123.45" />

    <!-- -->
    <TextView
        android:background="#8fe611"
        android:id="@+id/tv_elevation_data"
        tools:text="123.45" />

    <LinearLayout style="@style/TableBorder" />

    <!-- -->
    <TextView
        android:background="#F0998D"
        android:id="@+id/tv_height_data"
        tools:text="123.45" />

    <!-- -->
    <TextView
        android:background="#8fe611"
        android:id="@+id/tv_direction_data"
        tools:text="123.45" />

    <!-- -->
    <TextView
        android:background="#F0998D"
        android:id="@+id/tv_speed_data"
        tools:text="123.45" />
</TableRow>

Фиолетовый цвет - это цвет фона второй строки, который указывает, что TableRow фактически принимает полную ширину TableLayout.

При использовании инспектора макета каждый TextView во второй таблице имеет ширину не равную ширине элементов заголовка TableLayout, но меньше.

Какие-либо подсказки, почему элементы во втором TableRow не занимают всю ширину?

Спасибо!

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...