Android TableRow单元格不填充宽度

时间:2019-03-07 23:06:08

标签: android tablelayout android-tablelayout tablerow

在垂直的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

0 个答案:

没有答案