使用单Droid和slodge mvvmcross从栈中删除活动(Remove activity f

2019-07-18 12:09发布

我试图找到一种方法,从重新建立了新我们在我们的应用程序流删除活动:活动/视图模型一个 - >活动/视图模型乙 - >活动/视图模型℃。 在C用户必须选择一个日期posibility或回去。 如果他再回到他应该返回到B。 但是,如果他选择他fowarded到活动/视图模型B的新实例和活动的“老字号”实例的日期/视图模型b为过时,应予删除。

从斯图尔特提起建议(上类似的线程,只是单点触摸)是使用RequestRemoveBackStep(),但我不知道如何使用它,我不能找到一个例子。

任何人都可以点我在正确的方向?

问候

Answer 1:

所述RequestRemoveBackStep()方法是成员IMvxViewDispatcher接口,并且在一些平台上实现的:

public interface IMvxViewDispatcher : IMvxMainThreadDispatcher
{
    bool RequestNavigate(MvxShowViewModelRequest request);
    bool RequestClose(IMvxViewModel whichViewModel);
    bool RequestRemoveBackStep();
}

从https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross/Interfaces/Views/IMvxViewDispatcher.cs

然而,它并不完全是简单的,始终做到这一点...等等的Droid,例如,它目前正在为实现:

    public bool RequestRemoveBackStep()
    {
        // not supported on Android? Not sure how to do this currently...
        return false;
    }

从https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxAndroidViewDispatcher.cs

有记录的关于这个功能的问题-如https://github.com/slodge/MvvmCross/issues/80 -但它很可能是这个功能可能会简单地从未来MVX实现下降-尤其是因为它不是很容易的做每查看每个平台上。


如果您现在需要这种类型的功能,那么你就需要找到自己实现该功能......根据您的具体使用情况是什么样的方式(抱歉 - 您当前使用情况的细节不是很清楚,我从这个问题)。

有可用的,包括几种技术路线:

  • 使用NoHistory标志
  • 使用RequestClose(oldviewModel)电话
  • 添加逻辑到您的Presenter
  • 使用Messenger请求意见封闭自己。


文章来源: Remove activity from stack using Mono droid and slodge mvvmcross