Xamarin跨平台如何识别后退按钮事件(Xamarin.Forms)

How to identify back button event in Xamarin cross-platform (Xamarin.Forms)

有什么方法可以知道 'Android phone' 上的“后退”按钮事件何时被按下?当在 Xamarin.Forms 中按下此按钮时,我想退出游戏并为其添加一些功能。 我在谷歌上搜索了一下,但我得到了关于 Xamarin.Android 后退按钮的文章,但没有关于 Xamarin.Forms 的文章。 由于我对 Xamarin.Forms 比较陌生,请帮助我

public override void OnBackPressed()
{
    //base.OnBackPressed();
}

我在 Xamarin.Forms 中想要同样的东西。需要一些帮助,伙计们。

如果你的意思是Xamarin.Forms by "Xamarin Cross Platform", there is a OnBackButtonPressed你可以使用的事件。如该文档所示:

Event that is raised when the hardware back button is pressed. This event is not raised on iOS.

只需在 NavigationPage 上覆盖此事件即可开始:

protected override bool OnBackButtonPressed()
{
    // Do your magic here
    return true;
}

祝你好运!

在我的 xamarin forms 应用程序中,如果您使用的是母版页,则需要找到当前页面的 NavigationStack:

public bool DoBack
    {
        get
        {
            MasterDetailPage mainPage = App.Current.MainPage as MasterDetailPage;

            if (mainPage != null)
            {    
                bool doBack = mainPage.Detail.Navigation.NavigationStack.Count > 1 || mainPage.IsPresented;

                //top level of page and the Master menu isn't showing
                if (!doBack)
                {
                    // don't exit the app only show the Master menu page
                    mainPage.IsPresented = true;
                    return false; 
                }
                else
                {
                    return true;
                }                    
            }
            return true;
        }
    }