tinkoff-mobile-tech / decoro

Android library designed for automatic formatting of text input by custom rules
Apache License 2.0
391 stars 31 forks source link

Совершенно непонятное поведение EditText'a #28

Open btow opened 6 years ago

btow commented 6 years ago

Хочу обеспечить ввод числовой последовательности по маске: "09:09:09999:099". Для этого включил в код такие инструкции:

    Slot[] slots = new UnderscoreDigitSlotsParser().parseSlots("__:__:_____:____");
    FormatWatcher formatWatcher = new MaskFormatWatcher( // форматировать текст будет вот он
            MaskImpl.createTerminated(slots)
    );
    formatWatcher.installOn(etAddressItemFrag1_1); // устанавливаем форматтер на любой TextView

Однако, на выходе получаю такое вот непонятное поведение EditText'a:

videotogif_2018 02 13_09 41 35

al-dr commented 6 years ago

Добрый день. Есть основания полагать, что в данном случае проблема имеет схожее происхождение с ранее случавшимися https://github.com/TinkoffCreditSystems/decoro/issues/21 https://github.com/TinkoffCreditSystems/decoro/issues/11

Если коротко тот тип клавиатуры (android:inputType="number"), помимо прочего еще установит на EditText InputFilter запрещающий ввод символов отличных от цифр и некоторых других.

Может помочь что-то из следующего: 1) Использовать другой тип клавиатуры. 2) https://github.com/TinkoffCreditSystems/decoro/issues/11#issuecomment-274353635 3) Очистить напрямую EditText от "дополнительных" InputFilter установленных платформой

btow commented 6 years ago

Там ещё порядок отображаемых цифр отличается от порядка ввода. На самом деле я вводил следующую цифровую последовательность: 6656234567890. А получилось что-то совершенно странное

RomanTcv commented 5 years ago

Удалось решить данную проблему ? У меня работает корректно только с android:inputType="phone".