在Android中允许EditText视图多行显示?
问题的原因是没有正确设置EditText的属性以允许多行输入。解决方法是在EditText的XML布局文件中添加以下属性:inputType和lines。另外,如果需要滚动条,可以添加scrollbars属性。
以下是解决问题的代码示例:
以上代码中,inputType属性的值设置为textEmailAddress|textMultiLine,表示可以输入多行文本,并且可以输入电子邮件地址。lines属性设置为20,表示EditText默认显示20行文本。minLines属性设置为5,表示EditText最少显示5行文本。scrollHorizontally属性设置为false,表示不允许水平滚动。scrollbars属性设置为vertical,表示显示垂直滚动条。
通过设置这些属性,可以实现在Android中允许多行输入的EditText视图。
问题的出现原因是因为android:singleLine
属性已经被废弃,不能再使用。在现代的API中,可以使用android:inputType="textMultiLine"
属性来实现多行输入。
解决方法是在<EditText>
标签中添加android:inputType="textMultiLine"
属性。这样就可以实现多行输入了。
不过有一个回答指出,不要使用这个属性,因为会导致IndexOutOfBoundsException
异常。现在多行输入已经是默认的行为了,所以没有必要再显式地设置这个属性。不过为了向后兼容,最好保留这个属性。
还有一个回答者表示,他在尝试使用这个属性时遇到了问题,无论如何组合参数都会导致崩溃。所以他建议不要使用这个属性。
解决这个问题的方法是在<EditText>
标签中添加android:inputType="textMultiLine"
属性,但也有回答者表示不建议使用这个属性。
问题的原因是当将inputType设置为textMultiLine并且imeOptions设置为actionSend时,键盘上的回车键会显示为"Enter"而不是"Send"。
解决方法是通过以下两种方式之一:
1. 在布局文件中将inputType设置为textMultiLine,同时将imeOptions设置为actionSend,如下所示:
2. 在代码中使用setSingleLine()方法将EditText的单行模式设置为false,并且使用setImeOptions()方法将IME选项设置为IME_FLAG_NO_ENTER_ACTION,如下所示:
txt.setSingleLine(false); txt.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
这样就可以将回车键显示为"Send"而不是"Enter"。