android showSoftInput方法调用软键盘不显示

InputMethodManager imm= (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, 0);

项目中有这样一个需求,在某帖子里点击某一条评论的时候,弹出对话框让用户选择是删除评论还是回复评论,当用户点击回复评论的时候,自动打开软键盘,因此调用上述代码来显示软键盘,但软键盘并不会显示;

经查阅,发现只有当界面绘制完毕的时候,调用上述代码软键盘才会显示,在对话框消失的时候,马上调用上述代码,同时界面也要重新显示,所以软键盘不会显示,另外在oncreate里调用上述代码也不会显示;

解决办法:

把上述代码的调用延迟执行即可;

view.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager imm= (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(view, 0);
            }
        }, 200);


你可能感兴趣的:(Android)