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