我有一个包含三列的TableLayout,分别代表

requiredSymbol |标签|输入字段。

我希望输入字段填满屏幕右侧标签的剩余宽度。到目前为止,我发现的唯一解决方案是

<TableLayout android:layout_height="wrap_content"
       android:layout_width="fill_parent"
       android:stretchColumns="2">
    <TableRow>
                    <TextView android:text="@string/requiredSymbol"
                              />
     <TextView android:text="@string/Name"
                              android:textColor="@color/orange"
                              android:gravity="left|center_vertical"
         />
     <EditText android:id="@+id/contactName"
         android:inputType="text|textPersonName"
                              android:ellipsize="end"
                            android:singleLine="true"
                            android:scrollHorizontally="true"
                            android:maxWidth="1sp"
                            />
    </TableRow>


maxWidth需要有一些值,实际上会被忽略。然后,StretchColumns值可以很好地完成它的工作。请注意,如果EditText的内容会使表格跨过屏幕边框(恕我直言,则是错误),这也将起作用。

这现在可以很好地工作了,但对我来说似乎有点破烂。有没有更好的办法?

最佳答案

尝试在列上使用android:layout_weight,但请确保在TableLayout中设置android:stretchColumns。我在TableLayout单方面决定缩小列而导致不必要的文本换行时遇到了问题。我不确定layout_weight的使用和单边列收缩是否相关。

关于android - TableLayout列大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3114179/

10-12 00:11