MvvmCross Android 片段添加到返回堆栈
MvvmCross Android Fragments Add To Back Stack
我正在尝试将 MvvmCross 用于我的 Xamarin.Android 应用程序,使用 AndroidSupport 东西 (https://github.com/MvvmCross/MvvmCross-AndroidSupport)。
我已经做了很多工作,但我无法弄清楚当我导航到它时我打算如何将片段添加到返回堆栈。有人可以帮忙吗?
马特
我最终发现执行此操作的最佳方法是重写 OnFragmentChanging 方法。这样你就可以有选择地将特定片段添加到返回堆栈:
public override void OnFragmentChanging(string tag, FragmentTransaction transaction)
{
if (tag == typeof (MyViewModel).Name)
transaction.AddToBackStack(typeof (MyViewModel).Name);
base.OnFragmentChanging(tag, transaction);
}
我更新了示例以展示如何进行导航和返回堆栈处理:https://github.com/MvvmCross/MvvmCross-AndroidSupport/pull/44
我现在意识到这可能不太方便,所以我正在考虑添加这个:
protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool addToBackStack = false)
到 CachingFragment class。这将使您能够将它添加到演示者的显示方法中。
我正在尝试将 MvvmCross 用于我的 Xamarin.Android 应用程序,使用 AndroidSupport 东西 (https://github.com/MvvmCross/MvvmCross-AndroidSupport)。
我已经做了很多工作,但我无法弄清楚当我导航到它时我打算如何将片段添加到返回堆栈。有人可以帮忙吗?
马特
我最终发现执行此操作的最佳方法是重写 OnFragmentChanging 方法。这样你就可以有选择地将特定片段添加到返回堆栈:
public override void OnFragmentChanging(string tag, FragmentTransaction transaction)
{
if (tag == typeof (MyViewModel).Name)
transaction.AddToBackStack(typeof (MyViewModel).Name);
base.OnFragmentChanging(tag, transaction);
}
我更新了示例以展示如何进行导航和返回堆栈处理:https://github.com/MvvmCross/MvvmCross-AndroidSupport/pull/44
我现在意识到这可能不太方便,所以我正在考虑添加这个:
protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool addToBackStack = false)
到 CachingFragment class。这将使您能够将它添加到演示者的显示方法中。