在项目开发过程中,界面包含EditText输入框时,输入内容时软键盘弹起。但是此时我们调用界面中自定义的返回按钮执行.finish()方法销毁Activity后发现软键盘并没有跟随关闭收回,参考了网上各种方法后,试验总结出自己项目中可用的方案。
注意:此篇记录的是调用.finish()返回时软键盘未回收问题,而非手机本身的back键(手机本身的back键点击是会先收回软键盘,在销毁Activity)。
1、在AndroidManifest.java清单文件的标签下加入stateUnspecified。
使用环境是在ActivityB开启ActivityC,ActivityC中包含EditText,点击输入框获取焦点使软键盘弹出,然后调用自定义返回按钮执行.finish()方法,当ActivityC销毁后返回到ActivityB界面时,软键盘未回收问题,此时可以在AndroidManifest.java的ActivityB的标签下添加android:windowSoftInputMode="stateUnspecified"。
注:此方案在我的项目中使用无效,在此记录。
B界面设置android:windowSoftInputMode
键盘是否自动回收
stateUnspecified
✓
stateUnchanged
✗
stateHidden
✗
stateAlwaysHidden
✗
stateVisible
✗
stateAlwaysVisible
✓
stateHidden
✗
不指定</