对于dialog中,edittext无法显示出输入法的问题,我也是折腾了很久才搞定,
下面说一下我的解决思路:
1,首先
在代码与布局中,分别设置 edittext可以获得焦点,
if(ed!=null){ //设置可获得焦点 ed.setFocusable(true); ed.setFocusableInTouchMode(true); //请求获得焦点 ed.requestFocus(); //调用系统输入法 InputMethodManager inputManager = (InputMethodManager) ed .getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(ed, 0); }然后,没有解决问题,
2,尝试 把dialog.show方法放到 setContentView方法的后面(明知道show要先调用,还去作死,)
还是没有解决,
3,然后各种百度,各种博客看。正在苦思中,同事大神 说遇到过,然后用他的办法完美解决,
下面直接上代码,
需要在自定义dialog中设置如下代码:
loginDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); loginDialog.getWindow(). setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); window.setContentView(view);
效果图: