我有一个带输入的对话框,我必须自动弹出软键盘,当前代码:
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键盘显示(用文字输入)。
这看起来像一个小故障。不想忍受它。尝试过不同的事情,按时间做事。第一次连续后,键盘显示在顶部,没有跳跃。有人知道任何解决方法吗?我只是希望软键盘在横向,全屏和横向模式下显示(纵向模式有足够的空间让对话框向上移动并可见。
由于