Arello-Mobile / Moxy

Moxy is MVP library for Android
https://github.com/Arello-Mobile/Moxy/wiki
MIT License
1.6k stars 207 forks source link

Отсутствие ссылки на ViewState #234

Closed JorikFat closed 3 years ago

JorikFat commented 5 years ago

При использовании фрагмента вызываю

public class NewQueryFragment extends MvpAppCompatFragment implements NewQueryView{
...
        public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
            presenter.viewReady();//работает хорошо
        }
...
}

Когда пытаюсь вызвать эту же конструкцию в MvpAppCompatDialogFragment - метод presenter.viewReady(); вызывается, но внутри не выполняется ничего с getViewState(). Используя Debug понял, что к presenter'у не привязывается ни одна View. В какой момент работы MvpAppCompatDialogFragment presenter связывается с viewState?

senneco commented 5 years ago

Аттачится в момент вызова AppCompatDialogFragment.onResume

JorikFat commented 5 years ago

При этом в обычном MvpAppCompatFragment это происходит в onViewCreated()?

senneco commented 5 years ago

Нет, так же в onResume() ;) Сорцы в помощь =)

JorikFat commented 5 years ago

Почему тогда приведенный выше код работает нормально?

senneco commented 5 years ago

View значит ещё не приаттачена. А затем, когда она будет приаттачена, вью стейт обязан выполнить на ней ту команду, которая была отправлена из презентера во вью стейт. Дебаг должен больше помочь с пониманием того, что пошло не так.

JorikFat commented 5 years ago

Спасибо