EditText没有包装其内容

时间:2011-04-21 10:01:48

标签: android

我正在尝试创建一个EditText,它在只读和写入模式之间切换其状态。 我的XML如下:

<EditText xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/textArea" 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content" 
 android:lines="4"
 android:inputType="textMultiLine">
</EditText>

在我的代码中,我执行以下操作:

textArea = (EditText) convertView.findViewById(com.pravaa.mobile.R.id.textArea);
  //isEditable decides if the EditText is editable or not
 if(!isEditable){
        textArea.setInputType(InputType.TYPE_NULL);
  }
  //the view is added to a linear layout. 
  addView(textArea);

我的问题是文本没有被包装。我错过了什么吗?请帮助我。我还附上了我的输出图像。

EditText does not exapnd in height

The text does not wrap

视图中设置的文字是“12345678901234567 90123456789012345678901234567890 Nationwide Campaign New”

7 个答案:

答案 0 :(得分:8)

我想通过调用这个......

textArea.setInputType(InputType.TYPE_NULL);

覆盖标志InputType.TYPE_TEXT_FLAG_MULTI_LINE。试着改为调用它......

textArea.setInputType(InputType.TYPE_NULL|InputType.TYPE_TEXT_FLAG_MULTI_LINE);

答案 1 :(得分:4)

我能够通过删除

来解决这个问题
 android:inputType="textMultiLine"

要实现我使用的不可编辑功能

 setFocusable(false);

答案 2 :(得分:1)

此行将使文本成为多行并将文本换行

textArea.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);

您可能还想调用 setLines(n)来设置textArea的高度。

答案 3 :(得分:1)

尝试替换:

editText.setInputType(InputType.TYPE_NULL);

使用:

editText.setRawInputType(InputType.TYPE_NULL);

答案 4 :(得分:0)

我想说,使用textArea.setInputType(InputType.TYPE_NULL);,您可以从xml中删除textMultiLine

答案 5 :(得分:0)

设置textMultiLine是不够的。试试这个:

textArea.setHorizontallyScrolling(false);
textArea.setEllipsize(null);
textArea.setInputType(InputType.TYPE_NULL|InputType.TYPE_TEXT_FLAG_MULTI_LINE);

答案 6 :(得分:0)

我的帮助是:

edtText.setInputType(InputType.TYPE_NULL);
edtText.setSingleLine(false);

似乎忽略了XML文件中的setSingleline属性。