Как использовать MVVMCross для объединения фрагментов в Activity при работе с библиотеками классов - PullRequest
0 голосов
/ 08 ноября 2019

Если у вас следующая структура проекта:

  • Основной проект - хост-приложение Android
  • Компонент A - Библиотека классов Android
  • Компонент B - Библиотека классов Android

Если основной проект содержит MainActivity, в котором размещается FrameLayout.

Как именно можно использовать MvxNavigationService для перехода к фрагменту с помощью MvxFragmentPresentationAttribute, когда для этого атрибута требуются две важные частиинформация:

  • Тип хоста viewmodel
  • Идентификатор ресурса Android для FrameLayout.

Есть ли способ сделать это?

Спасибо

1 Ответ

1 голос
/ 11 ноября 2019

Ваш класс фрагмента будет выглядеть следующим образом.

[MvxFragmentPresentation(typeof(MainViewModel), Resource.Id.frameLayout, AddToBackStack = true)]
[Register("mynamespace.CardsBaseView")]
public class CardsBaseView : MvxFragment<CardsBaseViewModel> {
}

Здесь MainViewModel связан с MainActivity, в котором размещен этот фрагмент.

Для запуска этого фрагмента.

ПредположимВы хотите перейти в CardsBaseView из MyView;

Ваша MyViewModel должна выглядеть следующим образом.

public class MyViewModel : MvxViewModel
{
    private readonly IMvxNavigationService _navigationService;

    public MyViewModel(IMvxNavigationService navigationService)
    {
        _navigationService = navigationService;
    }
void NavigateToCardsView(){
_navigationService.Navigate<CardsBaseViewModel>(); 
}
...