Android WebView: по умолчанию возможно сначала установить цифровую клавиатуру при использовании типа ввода = текст
У нас есть приложение, которое использует webview для представления некоторых HTML-страниц. Эта HTML-страница имеет тип ввода, и мы использовали input-type = number, поскольку в этом поле мы принимаем только цифры с десятичной дробью. Таким образом, цифровая клавиатура Android появилась с десятичной точкой.
Проблема в том, что устройства Samsung обновлены до Android 4.3. Теперь десятичная точка отсутствует на цифровой клавиатуре.
Таким образом, нам нужно поместить общую клавиатуру, чтобы иметь десятичную точку. Проблема в том, что общая клавиатура отображается с буквами, и мы хотим, чтобы по умолчанию клавиатура отображалась на цифровой части клавиатуры, чтобы сделать ее более удобной для пользователя. Как это.
Как мы можем достичь этого??
РЕДАКТИРОВАТЬ: Может быть, я не очень хорошо объяснил. Проблема на HTML-странице, а не в Android TextView. Так что все ответы на android:type бесполезны.
2 ответа
Создание подклассов WebView и переопределение метода onCreateInputConnection позволяет получить десятичный разделитель на программной клавиатуре.
Другой вариант - изменить тип ввода HTML с "number" на "tel", но это позволяет пользователю вводить дополнительные символы, такие как "*" и "#".
Похоже, это проблема Samsung 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;
}
Вы можете установить для клавиатуры значение InputType, переопределив в файле класса макет веб-вида, который вы используете:
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
}
Это может помочь вам