Open Sash0k opened 4 years ago
У меня получилось решить эту задачу следующим образом:
editText.addTextChangedListener(afterTextChanged = { text ->
// For keep cursor position see this answer: https://stackoverflow.com/a/68339818/3094065
invalidateMaskColor(text)
})
private fun invalidateMaskColor(text: Editable?) {
if (text == null) return
text.getSpans(0, text.length, ForegroundColorSpan::class.java)
.forEach { span -> text.removeSpan(span) }
val mask = formatWatcher?.mask ?: return
if (text.toString() == mask.toString()) {
val color = placeholderTextColor
?.getColorForState(editText?.drawableState, Color.TRANSPARENT) ?: Color.TRANSPARENT
val span = ForegroundColorSpan(color)
text.setSpan(span, mask.initialInputPosition, text.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}
}
Добрый вечер, не нашёл в текущей версии такой возможности. При включенном отображении маски она выводится тем же цветом, что и вводимое значение. Было бы удобно отображать её цветом хинта, либо добавить возможность настраивать свой цвет.