小编Dim*_*nov的帖子

当scrollview全屏滚动时,EditText失去焦点

我有聊天视图,具有滚动视图,包含文本视图,并在滚动视图上方编辑文本。当新消息打印到textview中时,滚动视图全滚动到结束。

activity.scrollView.post(new Runnable() {
            @Override
            public void run() {
                activity.scrollView.fullScroll(ScrollView.FOCUS_DOWN);
            }
        });
Run Code Online (Sandbox Code Playgroud)

但是,如果我在EditText中键入文本,它将始终向下滚动并失去对编辑文本的关注(因此,如果消息经常打印,则键入message是不现实的)。我该如何解决?我在堆栈中找到了一些答案,但这并没有帮助我。就这个。

    editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if (hasFocus) {
                scrollView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        scrollView.fullScroll(ScrollView.FOCUS_DOWN);
                    }
                }, 200);
            } else {
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

UPD:我的textview是scrollview的子级,具有属性

textView.setTextIsSelectable(true);
Run Code Online (Sandbox Code Playgroud)

我删除了该属性,现在可以了,我可以键入message并且自动滚动不会阻止我。但是它仍然质疑为什么会这样。另外,我仍然希望能够选择(复制)文本。

android focus android-edittext android-scrollview

5
推荐指数
1
解决办法
861
查看次数