Xamarin.Forms 4:未调用ContentPage的OnBackButtonPressed

时间:2019-11-06 21:20:56

标签: xamarin.forms

我试图从我的 Xamarin.Forms 4 OnBackButtonPressed覆盖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中。 有想法吗?

1 个答案:

答案 0 :(得分:0)

在ContentPage中未收到BackButtonPressed事件的原因是由于Shell导航。因此,您实际上将在BackButtonPressed的外壳中接收事件。因此,在您的Shell类中,您将执行

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

如有查询,随时找回