当编辑文本获得焦点时滚动页面

4

edittext获取焦点时,我正在使用以下代码将页面滚动到底部:

fcListener = new OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus)                   
                handler.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        Page.fullScroll(ScrollView.FOCUS_DOWN);                         
                    }
                },300);
        }
    };

personNameText.setOnFocusChangeListener(fcListener);

然而,每当我点击editText时,它只会获得焦点短暂的一瞬间,然后页面就会向下滚动。然后edittext就失去了焦点。这种情况每次都会发生。我该如何防止失去焦点但仍能让页面向下滚动?

我不太明白为什么你想要向下滚动,这可能会让用户感到困惑,因为这不是预期的行为,但ScrollView已知会影响焦点。请查看此答案以了解如何处理默认行为。 - dmon
当editText获得焦点时,我希望在其下方显示一个按钮。 - Ankush
我明白了,那段代码将使滚动视图保持焦点。虽然不是理想的方法,但我还没有找到其他的方法。 - dmon
1个回答

0

不要试图使用自定义代码来滚动,请在 AndroidManifest.xml 中的活动上使用 android:windowSoftInputMode="adjustResize"。


1
我使用了它,但没有发生任何调整大小的情况,键盘只是覆盖了页面底部。 - Ankush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接