2017-09-15 87 views
0

我需要實現一個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。

回答

1

textLongMessage是(相當於TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_LONG_MESSAGE)文本的變化,而textMultiLine是一個標誌(TYPE_TEXT_FLAG_MULTI_LINE),所以理論上可以將它們混合:

android:inputType="textMultiLine|textLongMessage" 

我不知道爲什麼,但它僅適用,如果你也設置scrollHorizontally爲真以編程方式

someEditText.setHorizontallyScrolling(true);