禁用SoftKeyboardDetect?

时间:2012-11-26 15:04:49

标签: android cordova sencha-touch

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

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

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

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

如果我更改代码,以便当用户按下继续时,textarea仍然显示(即未隐藏),问题消失,这导致我假设phonegap类LinearLayoutSoftKeyboardDetect,它响应高度的变化,是问题的背后。有谁知道我怎么能禁用那个电话间隙行为?

2 个答案:

答案 0 :(得分:0)

在你的css中添加这一行

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

的src:HTTPS:?!//groups.google.com/forum/ fromgroups =#主题/ PhoneGap的/ _bgNkb19C_M

答案 1 :(得分:0)

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

每次点击文本区域时,都会检查屏幕区域是否已更改。如果它没有,那么它忽略了该事件。当textarea失去焦点时,也就是当我点击按钮继续时。

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

我真的不懂。它可能与SoftKeyboardDetect有关,因为这是phonegap引入的唯一内容,并且该应用程序在Chrome中运行顺畅,只有Sencha Touch代码。但是,如上所述,SoftKeyboardDetect似乎做了很明智的事情。