当文本后跟许多空格时,EditText不会换行

时间:2015-07-24 00:02:02

标签: android android-edittext text-alignment

所以我在SO和其他地方看过很多关于android在某些情况下不包装文本的帖子,但是看到了一个非常糟糕的疏忽,我不确切知道如何修复。

在多行EditText中输入文本时,单词/字符换行正常,直到您到达编辑文本边界的边缘,然后输入一堆空格而不是包装文本。真的,它只是“包裹”空间,这对于实际上不包裹文本是有意义的......也就是说,只要你不是文本的中心,那么这些额外的空间只会推动你的文本左边缘。如果在空格后输入另一个字符,则EditText会突然显示包装并删除所有空格。

继续尝试 -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<EditText android:background="#99FF0000"
    android:id="@+id/message_edit_text"
    android:textSize="30sp"
    android:gravity="center"
    android:textAlignment="center"
    android:layout_width="100dp"
    android:scrollHorizontally="false"
    android:layout_height="100dp"
    android:singleLine="false"
    android:maxWidth="300dp"
    android:isScrollContainer="false"
    android:layout_weight="1"
    android:inputType="text|textCapSentences|textMultiLine|textNoSuggestions"/>

</RelativeLayout>

你需要做的就是测试输入是一个单个字符,然后只需输入空格就可以看到是否飞离了左边缘。

任何想法如何阻止这种可怕的行为并保留文字大小? 额外功劳:不要只为字符串添加换行符。

1 个答案:

答案 0 :(得分:0)

尝试将重力更改为左上角。为我工作-

<EditText
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="@color/color_red"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:gravity="top|left"
        android:inputType="textMultiLine|textCapSentences"
        android:lines="10"
        android:maxWidth="200dp"
        android:maxLength="200"
        android:maxLines="10"
        android:singleLine="false"
        android:textColor="@android:color/white"
        android:textSize="26sp" />