169 похожих чатов

Привет, подскажите, пожалуйста! Есть следующая структура во ViewModel'и(представлена на рисунке).

Соответственно, при клике на кнопку с помощью binding'a вызывается метод onBackNavigate(), затем в фрагменте происходит некая навигация с помощью обсервера и вызывается метод onNavigateFinish(). К концу всех этих операций _eventBackNavigate.value = false.
Вопрос в следующем: у меня есть BindingAdapter, который принимает булеву переменную(как раз eventBackNavigate) и в том случае, если она true, то выполняет анимацию. Но функция BindingAdapter'а срабатывает только в конце уже всех операций и получается, что eventBackNavigate всегда равен false. Есть фикс с еще одной переменной, которой не надо бы было выставлять false после операций, но может есть какой-то более принятый способ сообщать BindingAdapter, что вот переменная изменилась, сделай что-то?

8 ответов

11 просмотров

Не уверен, что до конца вник в ситуацию, но разве не проще из обсервера дергать в нужный момент метод адаптера?

Никита-Камзолов Автор вопроса

Тоже можно, проблема скорее не в том, как легче, а в том, как правильнее с точки зрения архитектуры

А в какой ситуации вам вообще анимация нужна? Обычно такое делают в ответ на действие пользователя. Т.е. обрабатывают клик из колбэка/интерфейса адаптера в активити/фрагменте, там же через ViewModel вносят изменения в базу, а когда в ответ на это сработает обсервер, то в адаптере сменится список и выполнятся всякие onBindViewHolder и методы холдера, где должны быть действия над одним элементом RV.

Никита-Камзолов Автор вопроса

ВЫ не совсем верно поняли. BindinAdapter не имеет никакого отношения к RV. Может быть я там непонятно изъяснился, в таком случае прошу извинить меня

А адаптером чего он является тогда?

Никита-Камзолов Автор вопроса

https://developer.android.com/topic/libraries/data-binding/binding-adapters

Аа, DataBinding. Тогда не знаю, не работал с ним.

Никита-Камзолов Автор вопроса

В любом случае, спасибо!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта