2017-06-17 44 views
0

我想在Xamarin Android中使用MvvmCross框架添加OnBackPressed方法的自定义处理。我已经试过这样的事情:OnBackPressed MvvmCross的自定义处理 - 请勿关闭应用程序

[Activity(Label = "Table", NoHistory = true)] 
public class Table: MvxActivity 
{ 
    protected override void OnCreate(Bundle bundle) 
    {   
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.View_Table);     
    } 

    public override void OnBackPressed() 
    { 
     //base.OnBackPressed(); 
     SetContentView(Resource.Layout.View_MainMenu); 
    } 
} 

和应用程序去MainMenuView但一个单一的按钮(引导到TableView中)这个视图中被禁用。 我一直喜欢的东西:

protected override void OnResume() 
{ 
     SetContentView(Resource.Layout.View_MainMenu); 
} 
在MainMenuView

,但它不工作。我应该将一些代码添加到ViewModels而不是视图中吗?或者在布局中以某种方式绑定事件?如果有可能处理这种行为,如何实现这一点?

+0

什么不行?您是否使用物理后退按钮或导航栏中的按钮?当预期的行为和问题没有明确定义时,帮助你真的很难。 – Demitrian

+0

我正在使用物理后退按钮。该场景很简单。我有一个按钮,它指向TableView MainMenuView。在TableView中,我希望实现这样的行为,即在按下物理后退按钮后,应用程序将不会关闭,但会转到MainMenuView或之前显示的视图 –

回答

1

如果您这样编写代码,则不使用MvvmCross功能。

只要删除“History = true”,移除OnBackPressed()和OnResume()处理程序,MvvmCross将按照预期处理您的MainMenu。

使用MvvmCross时,您需要使用ViewModels而不是View来导航(至少在经典场景中)。

+0

好的,这是行得通的。谢谢。 –

+0

@BartoszJasiewicz好!你能把这个答案作为“接受”吗?谢谢! – hugoterelle

+1

当然完成! –

相关问题