Изменение элементов макета в элементе списка

#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 функции-это пользовательские функции для изменения видимости моих элементов с помощью анимации