c# - Xamarin.Forms Navigation.PushAsync 在 ContentView 中不起作用

标签 c# android xamarin xamarin.forms navigation

我想导航到 Xamarin Forms 中的其他页面,但它在内容 View 中不起作用。我正在使用

await Navigation.PushAsync(new Page2());

此代码没有给出任何错误并成功运行,但对页面没有影响。我也在内容页面中使用此代码,它在那里正常工作,但在 ContentView 的情况下不起作用。 目前我正在使用

await ParentView.Navigation.PushAsync(new Page2());

它在 ContentView 中运行良好。但我收到警告“ParentView 从 2.1.0 版开始已过时。请改用 Parent。”。但是没有类似的功能

await Parent.Navigation.PushAsync(new Page2());

它给出了语法错误。那么,有没有其他方法可以使用 ContentView 导航到其他页面。

最佳答案

如果您应用的 MainPage 是一个 NavigationPage,那么您始终可以从应用内部调用 PushAsync()。我建议检查 MainPage 是否属于 NavigationPage 类型,以确保您不会抛出强制转换异常。为此,只需使用这两行:

if(App.Current.MainPage is NavigationPage)
    (App.Current.Mainpage as NavigationPage).PushAsync(new Page2());

关于c# - Xamarin.Forms Navigation.PushAsync 在 ContentView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47341128/

相关文章:

c# - 引用不经意的代码时,可空引用类型会静默失败吗?

android - 检测到人脸时拍照

android - 检查给定的电子邮件是否存在

c# - Xamarin - NavigationPage.TitleView 内的 StackLayout 不会使用所有空间吗?

java - 我的 android xxxhdpi 模拟器显示黑屏

c# - dotnet highchart 错误,不显示数据

c# - 关于将 VS MVC3 项目发布到 Web 服务器的建议

android - 如何使用 MvvmCross fluent API 将 RecyclerView 项目的 TextView 绑定(bind)到 Android 上其 ViewModel 的属性?

c# - 一次性在多个表中添加数据,并在它们之间设置外键约束

java.lang.ClassNotFoundException : Didn't find class "java.lang.Character$UnicodeScript" 异常