700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > dialog 自动弹出软键盘的问题

dialog 自动弹出软键盘的问题

时间:2023-11-27 00:05:17

相关推荐

dialog 自动弹出软键盘的问题

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

前段时间 dialog中 有EditText 需要自动弹出 试了各种办法 都没啥用 比如EditText焦点的获取 强制软键盘的弹出 但是这个时候 强制弹出的软键盘 闪下就没了 强制的代码是在dialog.show()之后 运行的 得到这个结果之后 用反证法 其实就不难找到原因了

dialog 是自己写的一个类 extends Dialog 在style里面 可以找到这样一个属性<item name="android:windowIsFloating">true</item>

这个时候 可以理解 当我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 改行属性 <item name="android:windowSoftInputMode">stateVisible</item>次方案只针对需要自动弹出软键盘的dialog

至于这个属性 自行百度 android:windowSoftInputMode

软键盘 用的比较少 以后有时间 看下源码 跟下原理 目前就这样 希望有点帮助

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。