Задать вопрос
  • Андроид, почему не может установить фрагмент из переменной?

    @KonstantinKiriushyn
    Android Dev
    На первый взгляд все должно работать. Если специфично для версии 4.0.3, или для девайса, убедитесь что используете классы support библиотеки.
    Ответ написан
    4 комментария
  • MVP в Android'е со сложным интерфейсом из нескольких фрагментов. Как лучше скоординировать?

    @KonstantinKiriushyn
    Android Dev
    По best practices взаимодействие двух фрагментов организовывается через Activity, которое их хостит.
    Среди предложенных вариантов мне больше всего мне нравится вариант 3.
    В рамках задачи я бы сделал Activity = MasterView, и общался бы Presenter'ом c Activity. Далее Activity служило бы Mediator'om и неким координатором для фрагментов.

    НО.

    Предлагаю рассмотреть схему с двумя Presenter'ами. Первый отвечает за загрузку списка маркером и работает с MyListFragment, второй за работу с картой и привязан к MyMapFragment.
    А медиатором все так же является Activity с интерфейсами.

    2f22433a5e2840f5b78bb17638a9acb0.png

    Как это будет работать? (внешний код опущен)

    MyListFragment:
    //MapInterface реализует Activity для взаимодействия между фрагментами.
    mMapInterface.onMarkerSelected(marker);


    Activity:
    public void onMarkerSelected(Marker marker) {
          mMapFragment.selectMarker(marker);
    }


    MapFragment:
    public void selectMarker(Marker marker) {
           //например грузим информацию по маркеру
          mMapPresenter.loadMarkerInfo(marker, someCallback).
          //или просто производим манипуляции со View.
    }


    Также:
    Если же операции, выполняемые с Моделью одинаковые, то можно обойтись один презентером, но все равно он будет дергаться из Фрагментов. Потому что, раз мы говорим о хорошем дизайне, в случае дальнейшего усложенения логики Фрагментов, лучше чтоб каждый хостил свой Презентер.

    С удовольствием подискутирую на тему.
    Спасибо!
    Ответ написан
    Комментировать