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

Android TextEdit在填充大量数据时会扩展到屏幕边缘,android,tablelayout,stretch,textedit,Android,Tablelayout,Stretch,Textedit,我在表格布局中有几个文本编辑。对于较小的值,文本编辑延伸到屏幕边缘。但是,较大的值会导致文本编辑超出屏幕边缘。如何始终将文本编辑宽度保持在屏幕边缘 <TableLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:stretchColumns="1"> <TableRow android:baselineAligned="true"

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

    <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>

类似的内容可以限制用户在编辑文本中输入的字母数

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>

查看此链接了解更多信息


类似的内容可以限制用户在编辑文本中输入的字母数量

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>

查看此链接了解更多信息


答案最终是android:收缩列(#,#),而不是硬编码大小。回答评论中@akand074的评论。我找到了这个链接,它解释了为什么和如何工作:


答案最终是android:收缩列(#,#),而不是硬编码大小。回答评论中@akand074的评论。我找到了这个链接,它解释了为什么和如何工作:


我已经想到了这个想法,但实际上我更希望它始终位于屏幕边缘,而不管屏幕大小或方向如何。输入类型没什么大不了的,最好是我希望他们能够复制,但不能在编辑文本中实际输入值,但这不是什么大不了的/也不是重点。基本上,我有一个EditText,我想调整它的大小以适应内容,但不能超出屏幕边缘。因此,基本上在横向或纵向中,它会根据需要变大,直到它到达屏幕边缘,然后停止,只允许您滚动文本而不是增长。或者,我也同意它始终是屏幕上剩余空间的长度,而不管方向如何。对于第一个选项,您必须注册一个ContextChangedListener,并根据用户输入的字符数更改编辑文本的长度。对于第二个选项,您可以使用layout_Width='dip'谢谢您的回复。老实说,我认为第二种选择是更好的选择。我试过你的建议。当我将Layout width设置为“dip”时,它返回“必须提供Layout_width属性”。在中的图形布局中,它没有将其作为正确的值读取。这并不完全符合我的需要,因为这会拉伸第一列,将另一列推到右侧。但它确实让我找到了我需要的东西。事实上,有一个“心理医生专栏”,我甚至都没有意识到这一点。无论如何,将它们同时设置为“收缩”和“拉伸”解决了这个问题。谢谢你的帮助!我曾经想过这个想法,但实际上我更喜欢它总是在屏幕边缘,而不管屏幕大小或方向如何。输入类型没什么大不了的,最好是我希望他们能够复制,但不能在编辑文本中实际输入值,但这不是什么大不了的/也不是重点。基本上,我有一个EditText,我想调整它的大小以适应内容,但不能超出屏幕边缘。因此,基本上在横向或纵向中,它会根据需要变大,直到它到达屏幕边缘,然后停止,只允许您滚动文本而不是增长。或者,我也同意它始终是屏幕上剩余空间的长度,而不管方向如何。对于第一个选项,您必须注册一个ContextChangedListener,并根据用户输入的字符数更改编辑文本的长度。对于第二个选项,您可以使用layout_Width='dip'谢谢您的回复。老实说,我认为第二种选择是更好的选择。我试过你的建议。当我将Layout width设置为“dip”时,它返回“必须提供Layout_width属性”。在中的图形布局中,它没有将其作为正确的值读取。这并不完全符合我的需要,因为这会拉伸第一列,将另一列推到右侧。但它确实让我找到了我需要的东西。事实上,有一个“心理医生专栏”,我甚至都没有意识到这一点。无论如何,将它们同时设置为“收缩”和“拉伸”解决了这个问题。谢谢你的帮助!