强制对话框输入以在横向上要求全屏软键盘

我有一个输入对话框,我必须自动弹出软键盘,当前代码:

    final EditText input = new EditText(this);
    final AlertDialog dialog = new AlertDialog.Builder(ScActivity.this)
            .setMessage(message)
            .setView(input).setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
                    // do positive stuff
                }
            }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
                }
            }).create();

    input.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
                        InputMethodManager.HIDE_IMPLICIT_ONLY);

            }
        }
    });
    dialog.show();
    input.requestFocus();

这工作正常,除了一种行为。 当我第一次在风景模式下显示这个窗口时,对话框跳起来,好像它试图为软键盘腾出空间,然后意识到没有足够的空间,跳下来,然后全屏时间键盘显示(与文本输入)。

它看起来像一个小故障。 不想和它一起生活。 尝试按照不同的顺序做事,按时间做事情。 在第一次之后的每一个连续时间,键盘显示在最上面,没有跳跃。 任何人都知道任何解决方法? 我只想让软键盘在顶部,全屏,横向模式下显示(人像模式有足够的空间让对话框向上移动并可以看到。

谢谢

链接地址: http://www.djcxy.com/p/93365.html

上一篇: force dialog input to require fullscreen ime soft keyboard in landscape

下一篇: Android soft keyboard in a fullscreen Surface View