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);  
            }  
        }, 100);  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容