【问题标题】:Android - Multiline EditText wothout auto line breakAndroid - 没有自动换行符的多行 EditText
【发布时间】:2017-09-15 09:47:42
【问题描述】:

我需要实现一个 EditText,它允许文本大于屏幕大小,如下所示:

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 上附加了两个空格。

【问题讨论】:

    标签: java android xml android-edittext


    【解决方案1】:

    textLongMessage 是文本变体(对应于TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_LONG_MESSAGE),而textMultiLine 是标志(TYPE_TEXT_FLAG_MULTI_LINE),所以理论上可以混合使用:

      android:inputType="textMultiLine|textLongMessage"
    

    我不知道为什么,但它只有在您也将 scrollHorizontally 设置为 true 以编程方式

    的情况下才有效
    someEditText.setHorizontallyScrolling(true);
    

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 2016-03-29
      • 1970-01-01
      相关资源
      最近更新 更多