【问题标题】:Layout doesn't scroll up when next edittext entered输入下一个edittext时布局不会向上滚动
【发布时间】:2017-09-17 09:30:36
【问题描述】:

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

更新:在底部发帖

我有一个 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的位置。

我不知道,为什么它不滚动,但也许你有。

感谢您的回答。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我测试了所有组合,也没有使用 smoothScrollTo()。因为我使用的是代码而不是 xml,所以 android: 对我来说没用。代码有替代品吗?
    • 您也可以在 Java 中设置下一个可聚焦视图: Spieler1.setNextFocusDownId(Spieler2.getId());只需确保在此调用之前已经生成了 Spieler2 的 id(如果需要,您可以自己设置)。
    • 没有变化。通过 ime 选项转到下一个编辑文本,但没有滚动(使用 nextfocusdown)
    • 你是改变scroll2的滚动位置还是在Activity的其他任何地方切换键盘?
    • 我请求关注第一个编辑文本。然后我打开键盘(因为 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) 没有单独出现;scroll2 仅用于手动滚动,其他任何地方都没有使用。
    猜你喜欢
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多