Android TextEdit在填充大量数字时会扩展屏幕边缘

时间:2011-08-26 00:04:06

标签: android tablelayout stretch textedit

我在表格布局中有几个文本编辑。使用较小的值时,TextEdits会延伸到屏幕边缘。但是,较大的值会导致TextEdits超出屏幕边缘。如何始终将textedit宽度保持在屏幕边缘?

    <TableLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:stretchColumns="1">
        <TableRow android:baselineAligned="true" android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_width="wrap_content">
            <TextView android:id="@+id/textView4" android:layout_height="wrap_content" android:text="Perm:" style="@style/PlainText" android:layout_width="wrap_content"></TextView>
            <EditText android:id="@+id/f" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content">
            <TextView android:layout_width="wrap_content" android:layout_marginLeft="5dip" android:layout_height="wrap_content" style="@style/PlainText" android:id="@+id/textView5" android:text="w/ repetition:" android:gravity="right"></TextView>
            <EditText android:id="@+id/e" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_width="wrap_content">
            <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Combinations:" style="@style/PlainText"></TextView>
            <EditText android:id="@+id/d" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content">
            <TextView android:layout_width="wrap_content" android:layout_marginLeft="5dip" android:layout_height="wrap_content" style="@style/PlainText" android:id="@+id/textView6" android:text="w/ repetition:" android:gravity="right"></TextView>
            <EditText android:id="@+id/c" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_width="wrap_content">
            <TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="# of subsets:" style="@style/PlainText"></TextView>
            <EditText android:id="@+id/b" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_width="wrap_content">
            <TextView android:id="@+id/TextView04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pigeonhole:" style="@style/PlainText"></TextView>
            <EditText android:id="@+id/z" android:hint="0" android:scrollHorizontally="true"></EditText>
        </TableRow>
    </TableLayout>

2 个答案:

答案 0 :(得分:1)

答案最终是android:shrinkColumns(#,#),而不是硬编码大小。来自@ akand074的评论在答案评论中。我找到了这个链接,解释了为什么以及如何工作:

http://growingupwithandroid.blogspot.com/2010/01/how-does-tablelayout-handle-column.html#remindMeAgain

答案 1 :(得分:0)

这样的事情可以限制用户输入字母到编辑文本中的数量。

android:maxLength="10"

这将限制字符的溢出。

我发现有些是数字字段。所以使用

android:inputType="number"

或任何其他匹配选项。

<强>更新

这样的东西会拉伸所选列以占用剩余空间

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">
    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="Open..."
            android:padding="3dip" />
        <TextView
            android:text="Ctrl-O"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>
</TableLayout>

查看此链接以获取更多信息

http://developer.android.com/resources/tutorials/views/hello-tablelayout.html