#android #kotlin #android-listview #android-adapter
Вопрос:
Я использую NestedListView
(я полагаю, что функция аналогична ListView) для отображения списка устройств Bluetooth для подключения моего приложения.
Я хочу иметь возможность заменить изображение стрелки (сохраненное в виде изображения) анимацией загрузки (для этого я использую неопределенную панель прогресса) в элементе ListView при подключении к устройству, а затем вернуть его после завершения подключения, результат подключения не имеет значения.
Что я хочу сделать:
1 — Пользователь нажимает на элемент для подключения к устройству
2 — Изображение в элементе становится invisible
видимым, и анимация загрузки появляется на том месте, где была стрелка
3 — Когда попытка подключения завершена, анимация становится invisible
видимой, и стрелка возвращается
Для шагов 1 и 2 я знаю, что могу использовать setOnItemClickListener()
из ListView
класса, но у меня нет ни малейшего представления о шаге 3, я не знаю, что я могу сделать из своего обратного вызова о соединении. Я уже сохраняю положение выбранного элемента, но мне не удается добраться до элементов макета элемента. Я пробовал играть с getView()
ними, но ничего не получалось.
Кто-нибудь уже работал над этим?
Прослушиватель щелчка элемента, который я использую для шага 2:
b.lvChoice.setOnItemClickListener { _, v, pos, _ ->
requireActivity().runOnUiThread {
v.findViewById<ImageView>(R.id.iv_chevron).fadeOutInv {
v.findViewById<ProgressBar>(R.id.progress_connection).fadeIn()
}
}
}
b
это моя привязка к виду, так что это просто для того, чтобы получить доступ к моим элементам макета
fadeOutInv
а fadeIn
функции-это пользовательские функции для изменения видимости моих элементов с помощью анимации