我有一个带输入的对话框,我要自动弹出软键盘,当前代码:
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();
这工作正常,除了一种行为。我第一次以横向模式显示此窗口时,对话框跳起来,好像它试图为软键盘腾出空间,然后意识到没有足够的空间,跳回来,然后全屏ime键盘显示(与文本输入)。
它看起来像一个小故障。不想和它一起生活。尝试过以不同的顺序做事,按计时器做事。在第一次之后的每一个连续时间,键盘都出现在顶部,没有跳跃。有人知道任何解决方法吗?我只希望软键盘以横向模式全屏显示在顶部(纵向模式有足够的空间让对话框向上移动并可见。
谢谢