MvvmCross Android片段添加到后台堆栈

时间:2015-07-11 14:23:18

标签: android android-fragments xamarin xamarin.android mvvmcross

我尝试使用AndroidSupport内容(https://github.com/MvvmCross/MvvmCross-AndroidSupport)在我的Xamarin.Android应用中使用MvvmCross。{/ p>

我已经完成了很多工作,但我无法弄清楚当我导航到后台时我是如何将一个片段添加到后台堆栈的。有人可以帮忙吗?

马特

2 个答案:

答案 0 :(得分:3)

我已更新示例以显示如何进行导航和后台处理:https://github.com/MvvmCross/MvvmCross-AndroidSupport/pull/44

我现在意识到这可能不太方便,所以我想添加这个:

protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool addToBackStack = false)

到CachingFragment类。这样您就可以在演示者的show方法中添加它。

答案 1 :(得分:1)

我最终发现这样做的最好方法是重写OnFragmentChanging方法。这样,您可以有选择地将特定片段添加到后台堆栈中:

    public override void OnFragmentChanging(string tag, FragmentTransaction transaction)
    {
        if (tag == typeof (MyViewModel).Name)
            transaction.AddToBackStack(typeof (MyViewModel).Name);
        base.OnFragmentChanging(tag, transaction);
    }