【发布时间】:2014-09-24 06:47:43
【问题描述】:
假设我有一个显示片段 A 的活动。从片段 A 我单击按钮切换到片段 B。 在片段 A 上,我将软键盘隐藏在 onPause() 方法中。 在片段 B 上,我在 onResume() 方法中显示软键盘。
现在,当我单击按钮时,会显示片段 B,但未显示键盘,这不好。 如果片段 A 不使用键盘(删除 onPause() 中的隐藏软键盘代码),那么它可以正常工作。
我设置了断点,并且片段 A 的 onPause 肯定在片段 B 的 onResume() 之前被调用。 所以理论上我认为无论如何都应该显示键盘。
有什么想法吗?
【问题讨论】:
-
我怀疑正在发生的事情是隐藏和显示键盘的调用被安排在 UI 线程上运行,显示几乎在隐藏之后立即进行。由于键盘需要一些时间才能在屏幕外设置动画,我怀疑 show 命令已从 UI 处理程序中出列并尝试执行,但发现键盘仍然存在,所以什么也没做。
-
这也是我怀疑的。但是做延迟不是一个干净的方法。不知道有没有更好的办法。
-
就个人而言,我不会在 onPause() / onResume() 中操作键盘。
-
@Karakuri:你能详细说明一下吗?
-
我会删除键盘操作。从 A 切换到 B 时,您会降低并重新抬起键盘当然没有任何意义。
标签: android show-hide android-softkeyboard