#разработка #статьи #опрос
Казалось бы, что может быть проще, чем сделать клик на кнопку. Используй стандартный
View.OnClickListener и будь уверен, что кнопка нажмётся. Однако, не всё может быть столь очевидно.Опытные разработчики сталкивались с какими-то задвоенными действиями в приложении. Например, два запроса в сеть вместо одного. Часто причиной подобного поведения является именно стандартный ClickListener.
Решения может быть два:
• блокировка кнопки до появления какой-то реакции или ответа;
• добавление небольшой задержки при нажатии на кнопку.
Любопытно, что аннотация
@OnClick из библиотеки ButterKnife, использовала именно DebouncingOnClickListener под капотом. Но сегодня, когда основная масса разработчиков использует Kotlin synthetics или View Binding, мы забываем про этот «хак».
Автор в статье напоминает об этой фиче и рассказывает, как просто использовать его, совмещая с extension-функциями Kotlin. Получилось довольно удобно, и теперь можно делать:
my_button.setOnCLick(intervalMillis = 500) {
// Do stuff
}
вместо стандартного клика.
Кто считает, что клик с задержкой — это костыль?