-
Notifications
You must be signed in to change notification settings - Fork 31
Home
Mikhail Artemev edited this page Oct 28, 2016
·
14 revisions
В основе Decoro лежат два понятия: слот и маска. Слот определяет как будет отформатирован один символ. Маска же содержит список слотов и отвечает за форматирование последовательности символов. Жц Маска является сердцем Decoro и может использоваться как самостоятельно для форматирования произво:wльных строк в коде, так и для форматирования текста в TextView (EditText) "на лету" с помощью FormatWatcher.
Другие сущности, используемые библиотекой:
-
FormatWatcher
или форматтер - это абстрактная реализация TextWatcher’а. Он держит внутри себя маску и синхронизирует ее содержимое с содержимым TextView. Именно этот класс используется для форматирования текста "на лету", пока пользователь его вводит. В коробке имеются реализацииMaskFormatWatcher
иDescriptorFormatWatcher
. О различиях между ними в разделе о FormatWatcher'ах. - Иногда нам хочется создавать маску на основе какого-нибудь DSL (вроде
+1 (___) ___-__-__
).SlotsParser
как раз призван помогать нам это делать. ОбычныйString
он приводит к массиву слотов, которым умеет оперировать наша маска. Подробнее об этом в разделе о способах создания маски. -
PredefinedSlots
содержит предустановленные наборы слотов (для номера телефона, паспорта и т.д.) -
MaskDescriptor
- это "заготовка" с параметрами будущей маски, которуюFormatWatcherImpl
использует для (пере)создания своей внутренней маски.