Android SoftKeyboardDetect:忽略此事件是什么意思?

时间:2012-02-17 18:46:30

标签: android events cordova logcat

我在LogCat中经常看到这个调试消息。例如,在进行滑动或旋转设备时。然后,模拟器不会对事件做出反应。这是什么意思?

需要在模拟器上测试旋转,但在某些版本上,当我按下CTRL F12或CTRL F11时没有任何反应(好吧,设备整体旋转而不是屏幕)我在日志中看到此消息。谷歌没有找到任何东西......

好的,这是PhoneGap特有的。我在PhoneGap的源代码中找到了一些东西:

 /**
  * We are providing this class to detect when the soft keyboard is shown 
  * and hidden in the web view.
  */
 class LinearLayoutSoftKeyboardDetect extends LinearLayout {

        private static final String TAG = "SoftKeyboardDetect";

但是我没有用软键盘做任何事情,我只是在旋转设备。这可能是个错误吗?

2 个答案:

答案 0 :(得分:16)

我可以为您提供此日志的背景信息。 Android中存在一个错误,或者他们称之为缺少功能,但键盘显示或消失时不会抛出任何事件。这会导致Web应用程序出现问题,因为键盘缩短了屏幕尺寸。当屏幕尺寸变小时,您的UI会受到影响。

为了能够对PhoneGap Android中的键盘显示/隐藏作出反应,我们实现了LinearLayoutSoftKeyboardDetect,它基本上是一个LinearLayout,但它会对屏幕大小的变化作出反应。如果您旋转设备,宽度将变为高度,我们可以忽略更改,但如果高度变得非常小而宽度保持不变,则可以安全地假设显示了键盘并且我们抛出了显示键盘事件。当高度变得非常大而宽度保持不变时,我们抛出一个隐藏键盘事件。有意义吗?

答案 1 :(得分:1)

此实施似乎会影响情况 - >当弹出本机键盘时,它会缩小phonegap中的webview。再次改变。所以它倾向于忽略必要的事件。我想检测本机键盘完成按钮按下事件。