当带有预填充文本的EditText变得可编辑时,所有文本都会移至一行



我在滚动浏览中有一个可持续的文本,该卷文字已预先填充动态数量的文本。它可能是一行或50或更多。在这一点上,EditText是不可编辑的,并且文本的显示良好。但是,当我按下按钮使编辑文本可编辑时,EditText的整个内容都会抛入一条非常长的水平滚动线上。

您可以在这里确切看到我在说什么:https://zippy.gfycat.com/genericbigherring.webm

如何防止这种情况发生?我已经解决了一段时间。我尝试了设置线条和最高线等,但我无法弄清楚。

编辑:

这是我当前的scrollview/dedittext:

<ScrollView
    android:id="@+id/result_text_scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/result_title_text"
    android:layout_above="@+id/result_bottom_sheet"
    android:layout_marginTop="20dp"
    android:padding="5dp">

    <EditText
        android:id="@+id/extracted_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:padding="15dp"
        tools:text="Hello, World"
        android:textColor="@color/black"
        android:textStyle="bold"
        android:textSize="@dimen/extracted_text_size"
        android:textIsSelectable="true"
        android:inputType="none"
    />

</ScrollView>

从代码中,这是我正在为启用/禁用编辑所做的工作:

 @Override
public void enableTextEditing() {
    mExtractedText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    mExtractedText.setOnKeyListener(this);
}
@Override
public void disableTextEditing() {
    mExtractedText.setInputType(InputType.TYPE_NULL);
    mExtractedText.setOnKeyListener(null);
}

@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
    if (keyEvent.getAction() == KeyEvent.ACTION_DOWN && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        //All this does is call the View methods to disable text editing
        //and close the keyboard.
        mPresenter.doneEditingButtonPressed();
        return true;
    }
    return false;
}

android:linesandroid:minLinesandroid:maxLines添加到您的 dedittext view

也更改android: inputType = "textMultiline"

,如果您希望

,也可以将android:scrollbars="vertical"添加到您的Edittext

最新更新