首页 > 解决方案 > Xamarin.Forms 4:未调用 ContentPage 的 OnBackButtonPressed

问题描述

我试图OnBackButtonPressed从我的Xamarin.Forms 4 ContentPage覆盖如下

protected override bool OnBackButtonPressed()
{
    return base.OnBackButtonPressed();
}

但是当按下硬件按钮时,永远不会从我的Android设备调用此代码。我已经成功地覆盖了软件备份按钮,如下所示:

<Shell.BackButtonBehavior>
    <BackButtonBehavior Command="{Binding BackCommand}" IconOverride="Back.png" />
</Shell.BackButtonBehavior>

但是我可以被要求使用硬件按钮。在主要活动中,我可以在

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

但不在ContentPage. 任何想法?

标签: xamarin.forms

解决方案


您没有在 ContentPage 中收到 BackButtonPressed 事件的原因是 Shell 导航。因此,您实际上将在外壳中接收 BackButtonPressed 的事件。因此,在您的 Shell 课程中,您将执行类似的操作

public class AppShell: Shell
{
.
.
 public override void OnBackButtonPressed ()
 {
    base.OnBackButtonPressed ();
 }

如有疑问,请随时回复


推荐阅读