我試圖在一分鐘使用MvvmCross我Xamarin.Android的應用程序,使用AndroidSupport東西(https://github.com/MvvmCross/MvvmCross-AndroidSupport)。MvvmCross Android的片段添加到後退堆棧
我已經得到了很多的工作,但我無法弄清楚如何我打算片段添加到後退堆棧,當我瀏覽到它。誰能幫忙?
馬特
我試圖在一分鐘使用MvvmCross我Xamarin.Android的應用程序,使用AndroidSupport東西(https://github.com/MvvmCross/MvvmCross-AndroidSupport)。MvvmCross Android的片段添加到後退堆棧
我已經得到了很多的工作,但我無法弄清楚如何我打算片段添加到後退堆棧,當我瀏覽到它。誰能幫忙?
馬特
我已經更新的例子來說明如何做導航和回棧處理:https://github.com/MvvmCross/MvvmCross-AndroidSupport/pull/44
我現在意識到,這可能不是太方便了,所以我想在添加此:
protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool addToBackStack = false)
到CachingFragment類。這將使您能夠將其添加到演示者的show方法中。
我發現這樣做到底,最好的辦法是重寫OnFragmentChanging方法。這樣,您就可以將特定片段選擇性地添加到後退堆棧:
public override void OnFragmentChanging(string tag, FragmentTransaction transaction)
{
if (tag == typeof (MyViewModel).Name)
transaction.AddToBackStack(typeof (MyViewModel).Name);
base.OnFragmentChanging(tag, transaction);
}
聽起來好像很好用 –
新版本已經發布,包括補丁的補丁:https://www.nuget.org/packages/Cirrious.MvvmCross.Droid.Support.Fragging/4.0。 0-α-2 – Martijn00
我增加更多修復這個問題:https://github.com/MvvmCross/MvvmCross-AndroidSupport/pull/51 – Martijn00