Вот что я пробовал:
- < li>Я создал собственный класс EditText, расширив класс EditText.
- Я попробовал изменить цвет фона программно, используя postDelayed для мигания.
Код: Выделить всё
class BlinkingEditText(context: Context, attrs: AttributeSet?) : AppCompatEditText(context, attrs) {
fun showErrorBlink() {
val handler = Handler(Looper.getMainLooper())
var isRed = false
val runnable = object : Runnable {
override fun run() {
if (isRed) {
setBackgroundColor(Color.WHITE)
} else {
setBackgroundColor(Color.RED)
}
isRed = !isRed
handler.postDelayed(this, 500) // Blink every 500ms
}
}
handler.post(runnable)
// Stop blinking after 3 seconds
handler.postDelayed({ handler.removeCallbacks(runnable) }, 3000)
}
}
- Эффект мигания иногда продолжается даже после того, как предполагалось. остановить.
- Это лучший способ справиться с эффектом мерцания или есть лучший подход с использованием анимации или XML?
[*]Как я могу гарантировать мигание прекращается через определенное время?
[*]Есть ли более эффективный способ добиться этого эффекта, например, с помощью платформы анимации Android или элементов рисования XML?
< /ol>
Будем очень признательны за любые рекомендации или предложения по улучшению этой реализации.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ting-error
Мобильная версия