如何使TableLayout具有相同的宽度并包装内容

时间:2017-06-13 04:33:11

标签: android android-tablelayout

我尝试在TextView更改值时创建应用程序,然后TableLayout和Text View将内容包装在一行文本中,第一个TableRow下面的表行将遵循第一个TableRow宽度。

这是我的代码xml:

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

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_height="wrap_content"
        android:layout_margin="10dp" >

        <!-- Column 1 -->
        <TextView
            android:id="@+id/textView1"
            android:layout_height="wrap_content"
            android:layout_width="0dip"
            android:layout_weight="1"
            android:text="I want This Layout in one line " />

        <!-- Column 2 -->
        <TextView
            android:id="@+id/textView2"
            android:layout_height="wrap_content"
            android:layout_width="0dip"
            android:layout_weight="1"
            android:text="This textview in one line" />

        <!-- Column 3 -->
        <TextView
            android:id="@+id/textView3"
            android:layout_height="wrap_content"
            android:layout_width="0dip"
            android:layout_weight="1"
            android:text="This to" />
    </TableRow>

    <!-- more rows
    <TableRow ... </TableRow>
    -->
</TableLayout>

My Layout

提前致谢

1 个答案:

答案 0 :(得分:2)

您需要将这两行添加到textview中:

android:maxLines="1"
android:ellipsize="end"

这样,当你的文字比一行中可以调整的文本更长时,它将在结尾处为椭圆形

如果你正在使用LinearLayout,那么一个简单的hack将你的LinearLayout宽度设置为wrap_content,然后父Layout的宽度将等于最大的子。然后你可以将小子的宽度设置为match_parent,它将匹配所需视图的宽度。