我正在制作一个笔记保存程序应用程序,对于笔记的主体,我使用的是多行 EditText,如下所示:- Screenshot
EditText 代码:-
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.mnotes.view.TextField
android:id="@+id/mNoteEditText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:gravity="top|start"
android:inputType="textMultiLine"
android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"
android:textAppearance="?android:attr/textAppearanceMedium"
android:scrollHorizontally="false"
android:hint="Start Writing For Here...."
android:padding="8dp"
android:clickable="true"
android:focusable="true"
android:fontFamily="sans-serif-smallcaps"
android:longClickable="true"
android:textIsSelectable="true"/>
</LinearLayout>
当我滚动此 EditText 时,它会获得焦点,从而导致软键弹出,这种行为使滚动体验非常糟糕。所以我想在滚动时禁用对 EditText 的焦点,请帮忙。
最佳答案
我找到了一个解决方案(仅适用于短文本)。您可以使用 ScrollView
onScrollChange 事件。
我就是这样做的:
ScrollView scroll = findViewById(R.id.scrollView1);
scroll.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View view, int i, int i1, int i2, int i3) {
et.clearFocus();
}
});
变量et
是一个EditText对象。
关于java - 滚动多行 EditText 时移除焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839455/