Как создать собственный EditText с мигающим красным фоном для ошибок установки в Android Kotlin?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как создать собственный EditText с мигающим красным фоном для ошибок установки в Android Kotlin?

Сообщение Anonymous »

Я хочу создать собственный EditText в Android, который будет показывать мигающий красный фон при возникновении ошибки. Идея состоит в том, чтобы визуально указать пользователю, что ввод недействителен.
Вот что я пробовал:
  • < 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»