为什么 Android webview 显示“下一步”仅当 type="number" 时才在键盘中而不是 type="text" ?
我有一个带有几个输入字段的表单。因此,我想使用下一个按钮在字段之间导航,但这仅在输入字段类型为“数字”时有效。使用 type="text" 则不会!
这是 Android 3.2.1 中的错误吗?
我的输入字段是这样的:
<input type="text" name="..." .... /> --> keyboard "Go"
<input type="text" name="..." .... /> --> keyboard "Go"
<input type="number" name="..." .... /> --> here it shows the "Next" button on the keyboard
<input type="text" name="..." .... /> --> keyboard "Go"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
DennisA 适用于 Android 4.0 及更低版本。
简而言之,这不是一个错误,但遗憾的是谷歌是如何实现它的(我更喜欢所有这些键的一致的 GO,这样你就可以防止 JavaScript 中的默认操作)。
使用 Android 4.1 (JellyBean),您可以通过扩展 WebViewInputConnection 来更改默认行为:
https://github.com/android /platform_frameworks_base/blob/master/core/java/android/webkit/WebViewClassic.java#L379
(涉及黑客行为)
DennisA is right for Android 4.0 and below.
In short this is not a bug but sadly how google implemented it (I would prefer a consistent GO for all those keys so you can prevent the default action in JavaScript).
With Android 4.1 (JellyBean), you can change the default behavior by extending WebViewInputConnection:
https://github.com/android/platform_frameworks_base/blob/master/core/java/android/webkit/WebViewClassic.java#L379
(hackery involved)
我想你需要指定你的输入不是多行输入,否则,下一个将被下一个替换
I suppose you need to specify that your input is not a multiline input, otherwise, the next is replaced by next
当 webkit 渲染这些输入字段时,它将它们转换为一个名为 android.webkit.WebTextView 的类,该类决定软键盘的外观,并且似乎没有任何好的方法来覆盖 WebTextView 类设置的 ImeOptions
When webkit renders those input fields, it converts them into a class called android.webkit.WebTextView which determines how the softkeyboard would look like and there doesn't seem to be any good way to override the ImeOptions set by the WebTextView class