Xamarin Forms中是否有类似Android的Finish()的方法?

时间:2018-08-15 11:11:22

标签: c# xamarin xamarin.forms

我正在寻找一种可以在浏览不同页面时结束上一页/活动的方法,以便当按下“后退”按钮时,它不会回到上一条消息。在Java Android中,这种方法称为finish(),那么Xamarin Cross Platform中是否存在这种方法?

4 个答案:

答案 0 :(得分:1)

Xamarin Forms有一些选项可从堆栈中删除或添加页面。看看Navigation.PopAsyncNavigation.RemovePage

答案 1 :(得分:0)

Android Xamarin表单上,您可以使用类似的方法:Finish();

我认为您正在找到这种方法?

答案 2 :(得分:0)

xamarin形式中没有方法finish,因为finish()是为了让系统知道程序员希望当前的Activity完成。在xamarin表单中,您只有一个Activity,即MainActivity。 Xamarin表单围绕着Navigation展开,因此,如果您想回到上一个导航Navigation.PopAsync或要关闭模式,请使用Navigation.PopModal

答案 3 :(得分:0)

根据您描述目标的方式,我认为 this.Finish(); 会起到很好的作用。

示例代码:

Button nextPage;
protected override void OnCreate(Bundle savedInstanceState)
    {
        try
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.your_content_xml);
            // Set our view from the "main" layout resource

            nextPage = FindViewById<Button>(Resource.Id.button1);

            nextPage.Click += (s, e) =>
            {
                Intent nextActivity = new Intent(this, typeof(next_page_CS_file)); // Create Intent instance
                StartActivity(nextActivity); // Go to the Next Page as set in Intent
                this.Finish(); // Terminates Current Page.
                               // As such, once you're in the next page, clicking the back button 
                               // on phone's menu will close the App instead of going back here
            };
        } catch (Exception ex)
        {
            // Any code you want that'll handle the Exception.
            // Like, for example, . . .
            Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();
        }
    }

根据我的理解和经验,这应该可行。但是,我不确定是否还有其他方法可以实现您的目标。