我在滚动浏览中有一个可持续的文本,该卷文字已预先填充动态数量的文本。它可能是一行或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:lines
,android:minLines
和android:maxLines
添加到您的 dedittext view
也更改android: inputType = "textMultiline"
,如果您希望
android:scrollbars="vertical"
添加到您的Edittext