输入下一个edittext时,布局不会向上滚动

时间:2017-09-17 09:30:36

标签: java android android-layout android-edittext android-scrollview

我已经搜索了很多解决方案,但没有任何效果。

更新:发布在底部

我有一个ScrollView和一个FrameLayout作为孩子。 然后我用LayoutParams以编程方式设置了一些EditText。

此外,我激活了ime选项,因此它将自动转到下一个Edittext。 当它现在进入下一个时,布局不会向上滚动,键盘会隐藏EditText。

像android这样的答案:windowSoftInputMode =" adjustPan / adjustResize" 没有工作。 我还尝试用

手动滚动
Spieler1.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER)) {
                int current_pos = scroll2.getScrollY();
                scroll2.smoothScrollTo(0,(int)(current_pos + height/4));
                scroll2.post(new Runnable() {
                    @Override
                    public void run() {
                        Spieler2.requestFocus();
                        InputMethodManager imm = (InputMethodManager)   getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
                    }
                });

                return true;
            }
            return false;
        }
    }); 

奇怪的事情发生了:它想要向上滚动,但然后突然回到覆盖EditText的原始位置。

我不知道,为什么它不会卷起来,但也许你有。

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我怀疑smoothScrollTo()调用会导致您看到的行为。您可能希望为第一个EditText使用android:nextFocusDown属性,而不是设置OnKeyListener。