Я пытаюсь создать клавиатуру, на которой числа будут сразу же доступны в NativeScript, специально для Android - буквы и цифры должны быть видны без длительного нажатия.

NativeScript в настоящее время допускает только определенный набор типов клавиатуры, ни один из которых не обеспечивает желаемой функциональности.

Функциональность может быть достигнута с помощью собственного Android InputType и попытки присвоить его nativeElement.

https://developer.android.com/reference/android/text/InputType

Как мне реализовать их в NativeScript?

0
N.J.Dawson 29 Ноя 2018 в 18:48

1 ответ

Лучший ответ

Изучив источник, я наткнулся на это:

https://github.com/NativeScript/NativeScript/blob/c8341819a33bd9f02676815d5c8946ea6391970a/tns-core-modules/ui/editable-text-base/editable-text-base.android.ts#L250

Это внутреннее отображение NativeScripts для превращения "phone" в android.text.InputType.TYPE_CLASS_PHONE.

В этом методе есть this._setInputType(newInputType);, что означает, что мы также можем получить доступ к этой функции (_setInputType) для установки типа ввода с помощью флагов Android InputType.

Если вы прикрепите событие loaded к своему текстовому полю, вы сможете в функции получения сделать следующее:

// Called upon load of element
loaded(args) {
    // So we don't have to repeat this
    const InputType = android.text.InputType;
    // Get the object of which has been loaded.
    const tf = args.object;
    // Set the keyboard type
    tf._setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)
}
0
N.J.Dawson 29 Ноя 2018 в 15:53