TableLayout列的宽度不均匀

时间:2016-03-14 07:32:53

标签: android android-tablelayout

我正在尝试创建如下的布局

enter image description here

以下是我的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:background="@drawable/border"
    android:clipToPadding="false"
    android:elevation="10dp"
    android:orientation="vertical"
    android:outlineProvider="bounds"
    android:paddingBottom="10dp">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        android:stretchColumns="0,1,2">

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:gravity="center_vertical"
                android:text="Proforma Inv.#" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="1"
                android:gravity="center"
                android:text="Invoice#" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="2"
                android:gravity="center_vertical"
                android:text="Status" />
        </TableRow>

    </TableLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#000" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        android:stretchColumns="0,1,2">

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

            <TextView
                android:id="@+id/dashProformaInvoiceNo"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="PI1:4000039"
                android:textColor="#00ff00"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashInvoiceNo"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="INC 4000039"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashShippingStatus"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Cargo shipped"

                android:textStyle="bold" />
        </TableRow>

    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        android:stretchColumns="*">

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

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="1">

                <TextView
                    android:id="@+id/textView10"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Product:"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashProductName"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Biomass pellet"
                    android:textStyle="bold" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="1">

                <TextView
                    android:id="@+id/textView42"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Rate: "
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashRate"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="USD 100"
                    android:textStyle="bold" />
            </LinearLayout>
        </TableRow>


    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        android:stretchColumns="*">

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

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="1">

                <TextView
                    android:id="@+id/textView5"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="ETD"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashETD"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="07 oct 2015 11.00"
                    android:textStyle="bold" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="1">

                <TextView
                    android:id="@+id/textView43"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Quantitiy: "
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashQuantity"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="600 Tons"
                    android:textStyle="bold" />

            </LinearLayout>
        </TableRow>


    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        android:stretchColumns="*">

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

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/textView7"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="ETA: "
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashETA"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="06 OCT 2015"
                    android:textStyle="bold" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <TextView
                    android:id="@+id/textView45"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Amount: "
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dashAmount"
                    style="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="USD 6000"
                    android:textStyle="bold" />
            </LinearLayout>
        </TableRow>


    </TableLayout>

</LinearLayout>

问题在于我无法使列具有相同的宽度。我已经尝试将重量设置为所有线性布局,但问题仍然存在。

5 个答案:

答案 0 :(得分:1)

试试这个*编辑我的意思是textview

<TextView
    android:layout_width="0dp"
    android:layout_weight="1"
/>

答案 1 :(得分:1)

您将包装内容作为textviews的布局宽度。这会干扰拉伸柱。

将表格布局中所有元素的宽度更改为

     android:layout_width="0dp"

另外你为什么要使用这么多的表格布局?您可以将所有表格行标记放在一个表格布局中,下面也可以放在表格行之间的表格布局中。

   <View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_span="3"
    android:background="#000" />

机器人:layout_span =&#34; 3&#34;将使视图跨越所有列。

答案 2 :(得分:1)

向任何布局提供LinearLayout时,

width android:layout_width="0dp"必须为weight

  <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="1">

            <TextView
                android:id="@+id/textView5"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ETD"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashETD"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="07 oct 2015 11.00"
                android:textStyle="bold" />

        </LinearLayout>

答案 3 :(得分:1)

试试这个,

TableLayout
    android:stretchColumns="*"   // Optionally use numbered list "0,1,2,3,..."
>
    <TableRow
        android:layout_width="0dp"
    >

答案 4 :(得分:0)

我自己以某种方式解决了它

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1"
    android:layout_marginLeft="3dp"
    android:layout_marginRight="3dp">

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:gravity="center_vertical"
            android:text="Proforma Inv.#" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:gravity="center"
            android:text="Invoice#" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="2"
            android:gravity="center_vertical"
            android:text="Status" />
    </TableRow>

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

        <TextView
            android:id="@+id/dashProformaInvoiceNo"
            style="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="PI1:4000039"
            android:textColor="#00ff00"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/dashInvoiceNo"
            style="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="INC 4000039"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/dashShippingStatus"
            style="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cargo shipped"

            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView10"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Product:"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashProductName"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Biomass pellet"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView42"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Rate: "
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashRate"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="USD 100"
                android:textStyle="bold" />
        </LinearLayout>
    </TableRow>

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView5"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ETD"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashETD"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="07 oct 2015 11.00"
                android:textStyle="bold" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView43"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Quantitiy: "
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashQuantity"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="600 Tons"
                android:textStyle="bold" />

        </LinearLayout>
    </TableRow>

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView7"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ETA: "
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashETA"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="06 OCT 2015"
                android:textStyle="bold" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">


            <TextView
                android:id="@+id/textView45"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Amount: "
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dashAmount"
                style="bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="USD 6000"
                android:textStyle="bold" />
        </LinearLayout>
    </TableRow>
</TableLayout>