如何处理后退按钮以删除当前片段在MvvmCross中

时间:2015-08-29 13:11:44

标签: xamarin xamarin.android mvvmcross

我的MainMenu是第一个启动的活动或页面,它将MainPage显示为片段

在这个MainMenu中,

a)它有一个左抽屉。当用户点击抽屉中的某个项目时,它将显示为片段。

在这个MainPage中,
b)它在Action-Bar中有下拉菜单。当用户单击菜单中的项目时 它将显示为片段

问题:

1)用户单击MainPage(b):Action_bar下拉菜单中的项目,当用户单击后退按钮并显示主页面内容时,如何删除或不显示当前显示片段

我尝试了下面的代码,它不起作用

public override void OnBackPressed()
{
  if (DrawerLayout != null && DrawerLayout.IsDrawerOpen(GravityCompat.Start))

        DrawerLayout.CloseDrawers();
  else
        base.OnBackPressed();
}

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令将片段添加到片段管理器的backstack中:

SELECT dist.Column  + ','
FROM(
     SELECT DISTINCT t.Column
     FROM dbo.tb t) dist
FOR XML PATH ('')

我建议您查看MvvmCross的Android示例。它默认处理很多事情,比如backstack。 https://github.com/MvvmCross/MvvmCross-AndroidSupport/tree/master/Samples

答案 1 :(得分:0)

要将片段添加到后堆栈,可以在MvxFragmentPresentation属性中指定 AddToBackStack = true

[MvxFragmentPresentation(typeof(YourViewModel), Resource.Id.your_content_frame, AddToBackStack = true)]