dialog 自动弹出软键盘的问题

dialog中  有EditText  有的需求是自动弹出软键盘   有的是不需要自动弹出软键盘   其实解决方案是一样的

前段时间  dialog中  有EditText 需要自动弹出    试了各种办法 都没啥用  比如EditText 焦点的获取 强制软键盘的弹出  但是这个时候 强制弹出的软键盘   闪下就没了   强制的代码是在dialog.show()之后 运行的    得到这个结果之后   用反证法 其实就不难找到原因了  
dialog  是自己写的一个类  extends Dialog     在style里面   可以找到这样一个属性true
这个时候  可以理解  当我dialog.show()的时候  就立马执行了强制软键盘弹出代码   但是此时 dialog视图加载没有完成  软键盘的view 从属关系 属于上个view
而不是dialog 的view 所以 需在强制代码  加个延时操作  
/*Timer timer = new Timer();(此代码来源于网络)
timer.schedule(new TimerTask() {

@Override
public void run() {
editText.requestFocus();
InputMethodManager inputManager = (InputMethodManager) editText  
                    .getContext().getSystemService(Context.INPUT_METHOD_SERVICE);  
            inputManager.showSoftInput(editText, 0); 
}
}, 300);*/
解决方案二   把dialog  style 改行属性  stateVisible次方案只针对需要自动弹出软键盘的dialog
至于这个属性 自行百度  android:windowSoftInputMode
软键盘 用的比较少   以后有时间  看下源码   跟下原理   目前就这样  希望有点帮助

你可能感兴趣的:(布局细节代码)