键盘隐藏在方向更改上

时间:2017-06-02 16:30:57

标签: android android-fragments keyboard android-orientation window-soft-input-mode

类似的问题已经出现过几次了,但我发现了一些我认为不应该发生的奇怪的规律性。

其布局中Activity EditText。当用户单击该字段时,将显示软输入。将标记android:windowSoftInputMode="stateUnchanged"添加到AndroidManifest后,所有内容都会按预期在设备方向更改时正常工作 - 键盘保持其状态。但是当Fragment ActivityEditText位于Fragment之后AndroidManifest时,它不起作用。我认为在这种情况下会跳过Activity上的标记(标记仅涵盖onActivityCreated()),并且在方向更改期间,键盘会消失。

我没有找到保持键盘状态改变方向的干净解决方案。我在EditText上看到了手动显示键盘的解决方案,但我不喜欢它,因为它需要在对象中的某个变量上保持键盘可见性状态,这些变量在方向更改后仍然存在。 我发现如果Activity中有Fragment,即使用户没有触摸它,并且它没有聚焦,键盘也会保留其状态,这是完全出乎意料的。

我无法移除Activity并仅依赖Fragments,因为ViewPager中使用了Fragment。但我已经检查过,当Activity直接附加到android:configChanges="orientation|screenSize"时,也会发生这种情况。

我还发现我检查过的所有应用程序都以某种方式解决了这个问题。

是否有一个干净的解决方案,用于保持键盘状态的方向更改与片段?

编辑:我也不喜欢function removeUsers(){ $("td.removeUser").click(function(event){ event.preventDefault(); $(this).css('color','red'); var userId = $(this).find('span').data('user'); console.log(userId); $.ajax({ url: serverAPI + '/suspend-user', method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: {"userId": userId}, success: function(data){ console.log('suspend-user data', data); }, error: function(err){ console.log("in the error", err); } }) window.location.replace( clientAddr + "/admin" ); }) } 选项。

1 个答案:

答案 0 :(得分:0)

尝试将此行添加到清单

中的活动中
  

机器人:configChanges = “取向”

这不完美,但你可以尝试一下

相关问题