我们可以覆盖 Xamarin.forms 中的 NAVIGATION BACK BUTTON 按下吗?

Posted

技术标签:

【中文标题】我们可以覆盖 Xamarin.forms 中的 NAVIGATION BACK BUTTON 按下吗?【英文标题】:Can we override NAVIGATION BACK BUTTON press in Xamarin.forms? 【发布时间】:2016-03-09 06:30:21 【问题描述】:

我们可以覆盖在 Xamarin.forms 中按下的导航返回按钮吗? 我在导航栏中有一个导航返回按钮和一个保存按钮。保存按钮点击 Web 服务并以异步方式保存。虽然我使用了进度条进行保存,但可以按下导航返回按钮,因此应用程序由于导航堆栈上的索引超出范围异常而崩溃。我尝试使用 OnDisappearing() ,但没有用。我想取消 PopUpAsync(),如果保存没有完全完成,但未能实现。这种情况有什么解决方案吗?我们可以使用任何自定义渲染器覆盖导航返回按钮按下事件吗?

【问题讨论】:

【参考方案1】:

为了控制后退按钮做我想做的事,我在 Xamarin 中使用了这个方法:

   public override bool OnKeyDown(Keycode HWkeyCode, KeyEvent e)
    
        if (HWkeyCode == Keycode.Back)
        
            StartActivity(typeof(FrontPageActivity));
            return true;
        
        return false;
    

【讨论】:

以上是关于我们可以覆盖 Xamarin.forms 中的 NAVIGATION BACK BUTTON 按下吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 问题中的流利设计

Xamarin.Forms NavigationBar 颜色自 iOS 4.6 以来被覆盖

我可以以编程方式更改 Xamarin.Forms 中的 styles.xml 吗?

如何在 xamarin.forms 中获取状态栏高度?

Xamarin Forms - iOS 上的键盘覆盖条目(文本字段)

如何将 PageRenderer/Fragment/View 中的 ZXing 扫描仪嵌入 Xamarin.Forms ContentPage?