Size: a a a

Android Developers

2021 September 13

L

Leonid in Android Developers
Если и Flow не подходит, то тогда остаются только костыли 🤷‍♂

И все это ради сомнительной пользы от неиспользования импорта.
источник

VS

Vadim Sedov in Android Developers
Да, держать определение подписки и отписки в одном месте - это хорошо, повышает связность кода.
Я для такой ручной привязке действий к ЖЦ использую такую штуку
источник

VS

Vadim Sedov in Android Developers
Установить переменную в onCreateView и занулить в onDestroyView это разве костыль?
источник

TT

Turalllb Turalll in Android Developers
у меня такая гнилая ситуация , что я в ui потоке присваиваю вьюмодели данные, полученные из arguments из другого фрагмента. При этом во вьюмодели в его корутин скоупе (чтобы не отменилось) происходит запрос в сеть. Если будет ошибка я должен оповестить, так как это его корутин скоуп, я не могу во вьюхе использовать try ибо ошибка из другого скопа не всплывет.    И теперь мне нужно подписаться, если использовать флоу, то это снова корутина, исполнение которой может быть чуть позже , исполнения главного потока и я не увижу ошибку или увижу если это stateFLow, но тогда я буду видеть ее всегда и нужны лишние телодвижения, чтобы определить что я уже показывал эту ошибку.
источник

TT

Turalllb Turalll in Android Developers
вообще нет, стандартный removeListener
источник

L

Leonid in Android Developers
Он самый. Поэтому я себе базовый класс сделал, чтобы иметь этот функционал в одном месте под капотом вместе с inflate и забыть про inflate в каждом фрагменте.
источник

A

Andrey in Android Developers
Сделать передачу arguments во вьюмодель suspended fun, с ретёрном результата запроса, сам запрос обернуть в withContext(Dispatchers.IO)

Метод вызывать соответственно в lifecycleScope
источник

VS

Vadim Sedov in Android Developers
Объясните почему костыль? Это вроде самый классический вариант удержания ссылок на время жизни вьюхи. Ну и inflate же так под капотом фрагмента работает, нужно только в конструктор layout id передать.
источник

TT

Turalllb Turalll in Android Developers
не костыль, просто удобнее если это автоматом происходит
источник

L

Leonid in Android Developers
Упс, я ответил в контексте ViewBinding + Fragment.
источник

TT

Turalllb Turalll in Android Developers
человек это и сделал
источник

VS

Vadim Sedov in Android Developers
Кстати, считаю, что delegated property лучше подходит под интеграцию ViewBinding, чем наследование фрагмента. Пример, о чем я.
источник

L

Leonid in Android Developers
Я сделал так, что мне достаточно написать следующее:

class MyFragment : MyBaseFragment<MyFragmentBinding>() { ...

val binding доступен из базового класса.

Задолбало каждый раз делать by что-то, указывать ресурс лэйаута и тут же его view binding.
источник

TT

Turalllb Turalll in Android Developers
этот вариант тоже не подходил, потому что пока вьюмодель не получила это значение, вьюха не должна была дальше исполнять код, блокировать вьюху не красиво.  Но видно что вы меня максимально поняли, спасибо)
источник

VS

Vadim Sedov in Android Developers
А вьюмодель как подключаете?
источник

L

Leonid in Android Developers
Пока как обычно, by viewModels или типа того. Это не требует большого количества телодвижений.

А что?
источник

VS

Vadim Sedov in Android Developers
Интересен чужой опыт) показалось, что и by viewModels задолбало
источник

MV

Mytrenko. Vad in Android Developers
А как вы базовый биндинг приводите к тому, который вам нужен во фрагменте?
источник

VS

Vadim Sedov in Android Developers
Кстати, да
источник

L

Leonid in Android Developers
Я тут про это пару дней назад рассказывал.

Поищите по слову колдунство 😁
источник