Size: a a a

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

2016 November 26

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
Точнее он сохраняется при повороте только у того фрагмента, который сейчас отображается... А у предыдущего нет.
источник

K

Konstantin 🇷🇺 in Moxy – MVP библиотека под Android
Игорь Озеркин
Точнее он сохраняется при повороте только у того фрагмента, который сейчас отображается... А у предыдущего нет.
По моему при повороте идет создание по новой презентера и восстановление стека, мне кажется это нормально или нет
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
Игорь Озеркин
Точнее он сохраняется при повороте только у того фрагмента, который сейчас отображается... А у предыдущего нет.
а что делается со фрагментом А когда происходит транзакция фрагмента B?
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
Konstantin 🇷🇺
По моему при повороте идет создание по новой презентера и восстановление стека, мне кажется это нормально или нет
нет, презентер должен переживать поворот - в этом идея библиотеки)
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
Alexander Blinov
нет, презентер должен переживать поворот - в этом идея библиотеки)
Переворот переживает презентер в фрагменте текущем, а те, что в бэкстеке находятся нет
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
Я сейчас до компа доберусь и расскажу подробнее весь юзкейс
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
/**
    * Replace an existing fragment that was added to a container.  This is
    * essentially the same as calling {@link #remove(Fragment)} for all
    * currently added fragments that were added with the same containerViewId
    * and then {@link #add(int, Fragment, String)} with the same arguments
    * given here.
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
вот такая дока у replace
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
Ну так я вызываю реплейс и addtobackstack перещ коммитом. Фрагмент А не разрушается.
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
А при перевороте фрагмент гасится и соответственно презентер из хранилища удаляется
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
подумаем, что сделать можно, так то кейс в котором нужно сохранить презентер
источник

AO

Artem Osipov in Moxy – MVP библиотека под Android
А есть же стратегия (если я правильно помню), где презентер гасится только когда приложение дестроится, это не решит проблему?
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
есть типы презентеров Local Global и Weak
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
хочется сделать все на локальных (в крайнем случае на Weak)
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
короче проблема...а есть пример moxy + навигация с фрагментами?
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
public void onDestroy() {
       super.onDestroy();
       boolean anyParentIsRemoving = false;

       for(Fragment parent = this.getParentFragment(); !anyParentIsRemoving && parent != null; parent = parent.getParentFragment()) {
           anyParentIsRemoving = parent.isRemoving();
       }

       if(this.isRemoving() || anyParentIsRemoving || this.getActivity().isFinishing()) {
           this.getMvpDelegate().onDestroy();
       }

   }
вот метод this.isRemoving возвращает true при повороте экрана для фрагмента А в стеке, если фрагмент B у нас сейчас при аттачен к активити
источник

ИО

Игорь Озеркин in Moxy – MVP библиотека под Android
это кусок из MvpAppCompatFragment
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
можно в onDestroy смотреть находится ли этот фрагмент в бэкстэке и на основании этого принимать решение об удалении, то есть немного изменить метод
if(this.isRemoving() || anyParentIsRemoving || this.getActivity().isFinishing())
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
А есть такой метод? Надо обязательно добавить эту проверку:)
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
можно посмотреть backstackEntry
источник