[如何使用MVVMCross在处理类库时将片段组成一个Activity

问题描述 投票:0回答:1

如果您具有以下项目结构:

  • 主项目-Android主机应用
  • 组件A-Android类库
  • 组件B-Android类库

如果主项目包含承载FrameLayout的MainActivity。

[当该属性需要两条重要信息时,如何使用MvxNavigationService通过MvxFragmentPresentationAttribute导航到一个片段:

  • 主机视图模型的类型
  • FrameLayout的Android资源ID。

反正有实现此目标的方法吗?

谢谢

android android-fragments xamarin.android mvvmcross
1个回答
0
投票

您的片段类将如下所示。

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

这里MainViewModel与承载此片段的MainActivity关联。

启动此片段。

假设您要从MyView转到CardsBaseView;

您的MyViewModel应该如下所示。

public class MyViewModel : MvxViewModel
{
    private readonly IMvxNavigationService _navigationService;

    public MyViewModel(IMvxNavigationService navigationService)
    {
        _navigationService = navigationService;
    }
void NavigateToCardsView(){
_navigationService.Navigate<CardsBaseViewModel>(); 
}
© www.soinside.com 2019 - 2024. All rights reserved.