Size: a a a

Moxy – MVP библиотека под Android

2021 June 09

P

Pavel in Moxy – MVP библиотека под Android
Наоборот. Новый фрагмент всегда создаётся
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
А лучше переходи на kotlin там короче)
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
С навигацией у тебя всё ок
источник

P

Pavel in Moxy – MVP библиотека под Android
Я не помню как Moxy себя ведёт в случае replace() фрагмента.
Вроде как создаётся новый presenter. Или нет?
источник

A

Andrew in Moxy – MVP библиотека под Android
не вызывается, только destroyview
источник

P

Pavel in Moxy – MVP библиотека под Android
А презентер пересоздался?
источник

A

Andrew in Moxy – MVP библиотека под Android
Судя по дебагу и тому, что данных нет - да
источник

A

Andrew in Moxy – MVP библиотека под Android
Есть ли другой способ проверить?
источник

P

Pavel in Moxy – MVP библиотека под Android
Инстансы сравнить.. Либо поставить бряку в moxyPresenter или в @Provide функцию
источник

P

Pavel in Moxy – MVP библиотека под Android
Но раз данных нет, то, вероятно, пересоздался.
Я столкнулся с похожей проблемой с nav component и MVIKotlin. Но там стейт восстановился при replace()
источник

A

Andrew in Moxy – MVP библиотека под Android
Не до конца понимаю. Откуда берется moxyPresenter? Это класс, который мы создаем? Аннотация Inject разве не относится к DI?
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
источник

P

Pavel in Moxy – MVP библиотека под Android
Это kotlin extension. Надо зависимость подключить
источник

P

Pavel in Moxy – MVP библиотека под Android
https://github.com/moxy-community/Moxy

To use MvpDelegateHolder.moxyPresenter and MvpPresenter.presenterScope, add this:

implementation "com.github.moxy-community:moxy-ktx:$moxyVersion"
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
Вначале ты инжектишь создание Presenter как @Inject
через даггер или другой di

Далее говоришь moxy как создать presenter через @ProvidePresenter

И что бы использовать presenter инжектишь его обратно через @InjectPresenter
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
в kotlin 2й и 3й пункт совмещены
источник

A

Andrew in Moxy – MVP библиотека под Android
То есть без DI не обойтись?
источник

MN

Max Novikov in Moxy – MVP библиотека под Android
Можешь сам тут создать Presenter через конструктор
источник

P

Pavel in Moxy – MVP библиотека под Android
> Вначале ты инжектишь создание Presenter как @Inject
через даггер или другой di

С этим аккуратнее. Нужно инжектить фабрику или провайдер. @ProvidePresenter/moxyPresenter должна всегда создавать новый инстанс презентера
источник