Android的 - 多行的EditText wothout自动换行
问题描述:
我需要实现一个EditText允许文本比屏幕尺寸更是在:Android的 - 多行的EditText wothout自动换行
android:inputType="textLongMessage"
而且还支持回车键为:
android:inputType="textMultiLine"
尝试覆盖dispatchKeyEvent,但仍无法解决此问题。
<EditText
android:id="@+id/basicBatEdittext"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:background="#000"
android:gravity="top"
android:scrollHorizontally="true"
android:hint="Hey there!\nHow is it going?"
android:inputType="textLongMessage"
android:padding="6dp"
android:textColor="#fff"
android:textColorHint="#fff"
android:textCursorDrawable="@null" />
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || event.getKeyCode() == KeyEvent.ACTION_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_NAVIGATE_NEXT) {
String temp = edittext.getText().toString() + "\n";
edittext.setText(temp);
return true;
}
return super.dispatchKeyEvent(event);
};
它只是将两个空格添加到EditText。
答
textLongMessage
是(相当于TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_LONG_MESSAGE
)文本的变化,而textMultiLine
是一个标志(TYPE_TEXT_FLAG_MULTI_LINE
),所以理论上可以将它们混合:
android:inputType="textMultiLine|textLongMessage"
我不知道为什么,但它仅适用,如果你也设置scrollHorizontally
为真以编程方式
someEditText.setHorizontallyScrolling(true);