0

我有一个在 Chrome 中运行良好的 Sencha Touch 应用程序。但是,当使用 eclipse 和 Applaud 捆绑包打包为 Android 应用程序时,它会产生一种相当奇怪的行为,这可能与 SoftKeyboardDetect 相关。

用户可以点击复选框以输入关于所显示信息的评论。这将取消隐藏他们可以写评论的文本区域。然后他们点击一个按钮继续。显示的信息被新信息替换,他们可以再次选中复选框以输入评论。点击继续按钮会取消选中复选框并隐藏文本区域。

我发现如果用户在第一个信息上输入评论然后点击继续按钮,继续按钮保持“按下”状态并且必须再次点击才能继续。

我注意到点击继续按钮会导致 SoftKeyboardDetect 事件被触发,我想知道这是否是导致问题的原因?

如果我更改代码,以便当用户按下继续时,文本区域保持显示(即未隐藏),问题就消失了,这导致我假设响应高度变化的 phonegap 类 LinearLayoutSoftKeyboardDetect 落后问题。有谁知道我可以如何禁用该 phonegap 行为?

4

2 回答 2

0

好吧,我不知道到底发生了什么。一旦我确保可以在 logcat 中看到有关 SoftKeyboardDetect 的详细输出,我就可以看到 phonegap 似乎在做一些非常明智的事情。

每次我点击一个文本区域时,它都会检查屏幕区域是否发生了变化。如果没有,那么它会忽略该事件。当 textarea 失去焦点时也是如此,即当我单击按钮继续时。

我最终发现,如果我在其中输入文本的任何文本区域在我单击继续按钮之前仍然具有焦点,那么事情就会出错,如上所述。但是,如果我确保将焦点从我可能输入任何文本的任何文本区域中移除(通过使用 Sencha 的“模糊”方法),那么一切都会顺利进行。

我真的不明白。它可能与 SoftKeyboardDetect 有关,因为这是 phonegap 引入的唯一东西,并且该应用程序在 Chrome 中运行平稳,只有 Sencha Touch 代码。然而,如上所述,SoftKeyboardDetect 似乎在做相当明智的事情。

于 2012-11-27T23:43:36.110 回答
0

在你的 CSS 中添加这一行

* {
     -webkit-touch-callout: none;
 }

来源:https://groups.google.com/forum/?fromgroups=#!topic/phonegap/_bgNkb19C_M

于 2012-11-27T07:15:47.477 回答