安卓软键盘的处理非常糟糕,隐藏显示有时候很难控制。比如我的这种情况,当前对话框下弹出第二层AlertDialog,点击输入框显示软键盘,点击空白区域,dismiss第二层AlertDialog,会发现软键盘没有收起来,而是竟然跑到第一层对话框的后面去了!个人水平有限,我觉得很难处理这个问题,有遇到过同样问题的吗?虽然只是个小Bug,我还是觉得能处理就处理的好……

解决方案 »

  1.   

    第一个用dialogactivity 第二个用正常的dialog
      

  2.   

    我也遇到这问题,期待解决方法我怀疑是不是这个显示有个过程的,
    通常alertdialog设置好context,然后show()显示出来,假如alertdialog的布局里有edit,系统就自动弹出键盘供输入了我是反过来的,先把dialog显示出来,然后在添加edit,这就没有键盘了
    是不是错过了哪个步骤??大神给我的回复:这是因为alertdialog在show的时候有判断,如果没有et类的view则没有软键盘你只需要在show之后删除这个属性就行了
       dialog=...build.show();
       dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);//在show后加上这行即可
      

  3.   

    我是在简书上面找到了解决方案,是拓展dialog.java来的
    https://www.jianshu.com/p/6c9d0412d30f