Xamarin 表单 - UWP 后退按钮?

Posted

技术标签:

【中文标题】Xamarin 表单 - UWP 后退按钮?【英文标题】:Xamarin Forms - UWP Back Button? 【发布时间】:2016-07-14 16:40:17 【问题描述】:

我有一个使用 UWP 的简单 Xamarin Forms 应用程序。我正在推动一个新的观点:

await Navigation.PushAsync(new NavigationPage(new MyDetailView()));

当该视图加载时,没有返回堆栈的返回按钮。推荐的方法是什么?请注意,ios 中存在后退按钮。

【问题讨论】:

你不能创建自己的后退按钮,然后在按下它时调用后退逻辑吗? 我试图将内容保持在 Xamarin Forms 范式内。令我惊讶的是,这不是以某种方式烘烤的。 它没有融入桌面 UWP 应用程序。您还需要在那里创建自己的后退按钮。 看起来他们在这里做的:github.com/xamarinhq/app-acquaint 不知道到底是怎么做的 从 2017 年 8 月 29 日起,它不包括从 VS2017 模板创建的默认应用程序中的后退按钮。 【参考方案1】:

Desktop 上的后退按钮可以使用以下代码 sn-p 显示:

SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
   AppViewBackButtonVisibility.Visible;

这将在应用的标题栏中显示后退按钮。您可能希望在每次导航时更新此状态,以便在不需要按钮时(导航堆栈为空时)不显示按钮。

但我想这应该自动发生,因为这是 Xamarin.Forms 中已经存在的行为 - 请参阅 NavigationPageRenderer 源代码行 463。

我认为问题可能出在这样一个事实,即您正在使用一个包裹在新 NavigationPage 中的新视图,该视图窃取了导航堆栈并将其设为空。我想这应该可以按您的预期工作并解决您的问题(仅在现有 NavigationPage 中推送新视图):

Navigation.PushAsync( new MyDetailView() );

【讨论】:

好吧,但是如果我需要一个新的导航呢?如何强制返回按钮?

以上是关于Xamarin 表单 - UWP 后退按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 xamarin 表单中的导航页后退按钮

创建自定义导航栏渲染器以在 xamarin 表单 IOS 项目中添加自定义后退按钮图标

如何自定义 xamarin 表单 UWP 顶栏

Xamarin 形成 UWP 缺少电话呼叫管理器程序集

UWP-标题栏”后退“按钮

使用后退按钮在选项卡之间导航