【问题标题】:How to identify back button event in Xamarin cross-platform (Xamarin.Forms)如何识别 Xamarin 跨平台 (Xamarin.Forms) 中的后退按钮事件
【发布时间】:2018-01-09 03:11:47
【问题描述】:

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

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

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

【问题讨论】:

标签: android xamarin xamarin.forms cross-platform back


【解决方案1】:

如果您指的是“Xamarin Cross Platform”中的 Xamarin.Forms,则可以使用 OnBackButtonPressed 事件。如该文档所示:

按下硬件后退按钮时引发的事件。这个 事件不会在 iOS 上引发。

只需在您的 NavigationPage 上覆盖此事件,您就可以开始了:

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

祝你好运!

【讨论】:

  • return true 防止返回,return false 只是在返回之前做一些事情。
【解决方案2】:

在我的 xamarin 表单应用程序中,如果您使用母版页,则需要找到当前页面的 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;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2023-03-16
    相关资源
    最近更新 更多