【问题标题】:Navigation in Xamarin.Forms not workingXamarin.Forms 中的导航不起作用
【发布时间】:2018-06-01 16:34:46
【问题描述】:

通过将主页设置为导航页面或将主页设置为另一个内容页面,导航不起作用,因为我尝试了解决方案在这里:How to navigate one Content page to another Content page from client project (IOS/Android) in xamarin forms?

using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace App14
{
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        Application.Current.MainPage = new Page1();


    }


}
}

如果我运行上面的代码,我看不到任何内容应用程序只是加载并终止

    using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
    using System.Threading.Tasks;
   using Xamarin.Forms;

   namespace App14
   {
   public partial class MainPage : ContentPage
  {
    public MainPage()
     {
        InitializeComponent();
        App.Current.MainPage = new NavigationPage();
        Application.Current.MainPage.Navigation.PushAsync(new Page1())




    }


}
 }

如果尝试将 MainPage 设为导航页面和 Pushasync 代码,它也将不起作用

【问题讨论】:

    标签: c# xamarin navigation


    【解决方案1】:

    继承自 ApplicationApp.xaml.cs 应该正在加载您的 MainPage,并且对于导航,它应该包含在 NavigationPage 中。

    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();
    
            var navigationPage = new NavigationPage(new MainPage());
            MainPage = navigationPage;
        }
    
        ...
    }
    

    【讨论】:

    • 谢谢我帮助了我,但是如何在 mainpage.xaml.cs 或 Page1.xaml.cs 文件中编写代码来推送页面
    • 如果您尝试从该页面内部推送新页面并且当前页面已经在 NavigationPage 中,您所要做的就是 Navigation.PushAsync(new Page1(), true);
    【解决方案2】:

    您似乎想要启动您的应用,其根页面为Page1

    如果这是真的,那么你在错误的地方编写导航逻辑。您应该从MainPage's 构造函数中删除导航逻辑,并将您的第一页导航写入App.cs 类,如下所示:

    public partial class App : Application
    {
        public App ()
        {
            InitializeComponent ();
            MainPage = new NavigationPage(new Page1 ());
        }
    }
    

    否则

    如果您想以MainPage 作为您的根页面来启动您的应用程序,然后立即想将Page1 推送到导航堆栈,那么:

    public partial class App : Application
    {
        public App ()
        {
            InitializeComponent ();
    
            var navPage = new NavigationPage(new App14.MainPage()); 
            Application.Current.MainPage = navPage; 
    
            navPage.PushAsync(new Page1());
        }
    }
    

    有关 Xamarin.Forms click here 中导航的更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      相关资源
      最近更新 更多