滚动多行EditText时删除焦点

时间:2018-04-15 07:22:59

标签: java android android-edittext

我正在制作一个注释保护程序应用程序,对于我使用多行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的关注,请帮助。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案(仅适用于短文本)。您可以使用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对象。