【发布时间】:2014-03-03 18:45:33
【问题描述】:
我有一个在某些时候包含 FragmentActivity 的应用程序。这个 FragmentActivity 包含一些 Fragment(FragmentA、FragmentB 等)。在每个片段上,都有一个或多个 EditText。
我正在尝试正确处理键盘。我想让键盘随时出现或消失。
例如,创建 FragmentA 时,我想在 EditText 上打开键盘。然后,用户可以选择三个选项:
他点击了一个按钮,进入下一个片段
他点击键盘的动作发送(什么都不做(故意)但正常关闭键盘),然后他可以从视图中点击按钮
他点击了手机的后退按钮。在这种情况下,它会关闭键盘,然后他可以单击视图中的按钮。
我的问题是,每当用户通过点击手机的后退按钮关闭键盘时,Android 都会认为他不想在活动中看到键盘。因此,当创建 FragmentB 时,我无法在此 Fragment 的 EditText 上以编程方式显示键盘(使用 InputManager btw)。
然后,第二个问题是当我点击edittext获得焦点时,在Android 4.x中,键盘再次显示,没有问题,但在Android 2.x中,即使再次显示键盘也是不可能的如果焦点在编辑文本上!这太痛苦了。 似乎一旦用户在一个活动(甚至是片段活动)中使用后退按钮明确关闭键盘,您就无法再次显示它。
有人有解决办法吗?也许玩 InputManager 中的标志?我没有了解所有这些以及它们的作用。
【问题讨论】:
标签: android android-activity keyboard focus fragment