0

我使用TableLayout 来对齐控件及其标签。style/rounded_label 和 style/rounded_value 的高度和宽度都是wrap_content.

<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>

当 TextView 将其文本拆分为两行时,TableRow 的高度不会改变。 左多行

但是当 EditText 有多行时, TableRow 会包装它。 右多线

当 TextEdit 多行时,我需要 TableRow 来换行文本。

(我试过收缩列)

布局xml是:

<TableLayout
            android:id="@+id/frmPaymentTableLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

<TableRow
                android:id="@+id/frmPaymentTrSerialCreditCardNo"
                style="@style/rounded_row" >

                <TextView
                    android:id="@+id/frmPaymentTvSerialCreditCardNo"
                    style="@style/rounded_label"
                    android:text="Card Nr" />

                <View style="@style/rounded_seperator" >
                </View>

                <EditText
                    android:id="@+id/frmPaymentEtSerialCreditCardNo"
                    style="@style/rounded_value"
                    android:ems="10" >

                    <requestFocus />
                </EditText>
            </TableRow>
4

2 回答 2

1

TableLayout处理其子项的所有宽度和高度。事实上,你甚至不能layout_width为它的孩子定义。这可能是您的问题的原因。

尝试从您的视图中删除layout_height和。layout_width

于 2012-12-10T18:02:27.647 回答
0

您需要android:layout_height="wrap_content"在您的项目内添加,它会根据其孩子的大小TableRow适合大小。TableRow

我认为你错过了实现的重点......我认为你需要重新设计你的 xml ......

<TableLayout
                android:id="@+id/frmPaymentTableLayout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

    <TableRow
                    android:id="@+id/frmPaymentTrSerialCreditCardNo"
                    android:layout_height="wrap_content"
                    style="@style/rounded_row" >

                    <TextView
                        android:id="@+id/frmPaymentTvSerialCreditCardNo"
                        style="@style/rounded_label"
                        android:text="Card Nr" />

                    <View style="@style/rounded_seperator" >
                    </View>

                    <EditText
                        android:id="@+id/frmPaymentEtSerialCreditCardNo"
                        style="@style/rounded_value"
                        android:ems="10" >

                        <requestFocus />
                    </EditText>
                </TableRow>
于 2012-12-10T18:19:21.393 回答