7

我们有一个应用程序使用 webview 来呈现一些 HTML 页面。这个 HTML 页面有输入类型,我们使用 input-type = number 因为我们只接受在这个字段中带有小数的数字。所以数字android键盘出现了小数点。

问题是三星设备更新到 Android 4.3。现在数字键盘上缺少小数点。

所以我们需要把普通键盘放到小数点上。问题是普通小键盘以字母出现,我们希望小键盘默认出现在键盘的数字部分,以使用户更加友好。像这样。

在此处输入图像描述

我们怎样才能做到这一点?

编辑:也许我解释得不好。问题出在 HTML 页面上,而不是在 android TextView 中所以所有的 android:type 答案都没有用。

4

2 回答 2

6

子类化 WebView 并覆盖 onCreateInputConnection 方法可以将小数分隔符放入软键盘。

另一种选择是将 HTML 输入类型从“数字”更改为“电话”,但这允许用户输入其他字符,如“*”和“#”。

这似乎是三星 4.3 的特定问题。

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {

    InputConnection connection = super.onCreateInputConnection(outAttrs);

    if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER)
    {
        outAttrs.inputType |= InputType.TYPE_NUMBER_FLAG_DECIMAL;
    }

    return connection;
}
于 2014-03-25T12:31:09.437 回答
0

您可以通过在您正在使用的 webview 布局的类文件中覆盖来将键盘设置为 InputType 编号:foloow 此代码

override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {
    val inputConnection = BaseInputConnection(this, false)
    outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE
    outAttrs.inputType = EditorInfo.TYPE_CLASS_NUMBER
    return inputConnection
}

它可能会帮助你

于 2018-06-11T13:32:27.640 回答