Android 方向改变时隐藏键盘
类似的问题已经出现过好几次,但我发现了奇怪的规律,我认为这是不应该发生的 在其布局中有Android 方向改变时隐藏键盘,android,android-fragments,keyboard,android-orientation,window-soft-input-mode,Android,Android Fragments,Keyboard,Android Orientation,Window Soft Input Mode,类似的问题已经出现过好几次,但我发现了奇怪的规律,我认为这是不应该发生的 在其布局中有活动和编辑文本。当用户单击该字段时,将显示软输入。通过在AndroidManifest中添加标志“android:WindowsOfInputMode=“stateUnchanged”,在设备方向发生变化时,一切正常工作-键盘保持其状态。但是当片段位于该活动之上,并且编辑文本位于片段中时,它不起作用。我假设在这种情况下跳过AndroidManifest上的标志(该标志仅涵盖活动),并且在方向更改期间键盘消失 我
活动
和编辑文本
。当用户单击该字段时,将显示软输入。通过在AndroidManifest中添加标志“android:WindowsOfInputMode=“stateUnchanged”,在设备方向发生变化时,一切正常工作-键盘保持其状态。但是当片段
位于该活动
之上,并且编辑文本
位于片段
中时,它不起作用。我假设在这种情况下跳过AndroidManifest
上的标志(该标志仅涵盖活动
),并且在方向更改期间键盘消失
我没有找到在方向改变时保持键盘状态的干净解决方案。我看到了在activitycreated()上手动显示键盘的解决方案,但我不喜欢它,因为它需要在对象中的某个变量上保持键盘可见性状态,该变量在方向更改后仍然有效。
我发现,如果在活动
中有编辑文本
,即使用户没有触摸它,并且它没有聚焦,键盘仍保持其状态,这是完全出乎意料的
我无法删除片段
,而只能依赖活动
,因为片段
用于查看页面
。但是我已经检查过当片段
直接连接到活动
时也会发生这种情况
我还发现我检查过的所有应用程序都以某种方式解决了这个问题
是否有一种干净的解决方案,可以在带有碎片的方向更改时保留键盘状态
编辑:我也不喜欢android:configChanges=“orientation | screenSize”选项。尝试将这一行添加到清单中的活动中 android:configChanges=“方向”
它并不完美,但你可以试试。我忘了一开始就说过我拒绝了这个想法:。此外,android:configChanges仅适用于后蜂窝设备上的“方向|屏幕大小”标志。