大多数人显示软键盘都是使用 下面这种方法
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(focus, 0);
其中focus是EditText或者其他能获取焦点的 View
但是有很多情况下 软键盘并没有弹出来.
原因是因为当界面初始化的时候可能 EditText 并没有初始化完成 就要求显示软键盘了
而此时focus是null
因此可以如下方案解决:
focus.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imm.showSoftInput(focus, 0);
}
});
同上其中focus是EditText或者其他能获取焦点的 View.