Java 安卓(phonegap)点击输入会随机触发不同的键盘
我正在为android开发一个phonegap应用程序 如果您不熟悉phonegap,只需知道它是一个包含webview的应用程序,其余部分由html/js组成 我有一个正常的输入,当我点击它时,我有一个正常的键盘被触发,在右下角有一个“Go”按钮 但有时,我的键盘在右下角只有一个“回车”键。这个键盘通常行为怪异,不想隐藏 我不明白为什么我的输入会触发不同的键盘。。我只想保留第一个Java 安卓(phonegap)点击输入会随机触发不同的键盘,java,javascript,android,html,cordova,Java,Javascript,Android,Html,Cordova,我正在为android开发一个phonegap应用程序 如果您不熟悉phonegap,只需知道它是一个包含webview的应用程序,其余部分由html/js组成 我有一个正常的输入,当我点击它时,我有一个正常的键盘被触发,在右下角有一个“Go”按钮 但有时,我的键盘在右下角只有一个“回车”键。这个键盘通常行为怪异,不想隐藏 我不明白为什么我的输入会触发不同的键盘。。我只想保留第一个 所以iScroll+Android+表单字段似乎不能很好地协同工作。我曾经遇到过一些棘手的问题,比如文本框消失,
所以iScroll+Android+表单字段似乎不能很好地协同工作。我曾经遇到过一些棘手的问题,比如文本框消失,工作不正常,键盘将整个页面向上移动。奇怪的东西 我们通过在每个文本框/选择项/表单字段上设置
touchstart
上的stopPropagation
解决了这个问题,它解决了我们的问题
var selectField = document.getElementById('textbox');
selectField.addEventListener('touchstart', function(e) {
e.stopPropagation();
//updateScrollPosition(this, true);
}, false);
编辑
我可以考虑的另一个解决方法是覆盖onBeforeScrollStart,以防止在选定元素中发生触摸时滚动(这里的问题是输入、选择和文本区域,但您可以针对任何内容):
编辑2
因此,上述两项都没有帮助。不久前我也遇到了同样的情况,所以我想出了一个(可怕的)黑客来解决这个问题。我无法共享这段代码(哦,许可证!),但我执行的步骤是:
- 检查是否是android,版本是否低于3.0
- 隐藏输入并替换为div
- 单击div时,运行一个本机位层,触发对隐藏的EditText的单击
- 添加一个textChangeListener并将所有内容复制到div和输入中
- 真的很生气,这是你找到的最好的解决方案,并不断地把你的键盘敲在桌子上
iScroll.options.onBeforeScrollStart = function(e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA'){
e.preventDefault();
}};
}