0

我有一个 TableLayout,里面有几个 TableRows。在每一行中,我有两个 TextView:第一个显示一些描述性文本,第二个显示一个数字。例如:

| Text |.0.|
| Text2|.0.|
| ...  |.0.|

我有相同权重的 TextViews,重力以行本身和 each 为中心TextView,但是,当在应用程序执行期间更改文本时,元素会移动并且不再排列。所以它变成了这样:

| Text |..0|
| Text2|..0|
| ...  |..0|

值不再是它们最初的位置。我希望在文本更改时值保持原样(最长的文本不够长以至于接近数字)。我还想保持格式整洁和尽可能低的 SDK 级别(目前为 8)。

示例 xml 代码:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="8"
    tools:context=".Name" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right" />
    </TableRow>

    // This is the start of where the descriptive text and their values are

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

        <TextView
            android:id="@+id/textView2-1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center" />

        <TextView
            android:id="@+id/textView2-2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center" />
     </TableRow>
... // etc

我尝试过改变权重(分配第一个TextView权重 9 和第二个权重 1),但这没有用。无论文本是什么(包括空字符串“”),我都希望所有数字都排成一行,并且在文本更改时不移位。

有任何想法吗?

4

1 回答 1

0

我认为您正在文档中寻找这个

TableLayout.setShrinkAllColumns(boolean shrinkAllColumns)

TableLayout.setStretchAllColumns(boolean stretchAllColumns)
于 2013-01-30T03:32:57.193 回答