【问题标题】:Xamarin Forms - UWP Back Button?Xamarin 表单 - UWP 后退按钮?
【发布时间】: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 模板创建的默认应用程序中的后退按钮。

标签: xamarin xamarin.forms uwp


【解决方案1】:

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

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

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

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

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

Navigation.PushAsync( new MyDetailView() );

【讨论】:

  • 好吧,但是如果我需要一个新的导航呢?如何强制返回按钮?
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多