在Xamarin.Forms导航无法正常工作

时间:2018-06-01 16:34:46

标签: c# xamarin navigation

导航无法通过将主页设置为导航页面或将主页设置为其他内容页面,因为我尝试了解决方案在此处: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代码,它将无法正常工作

2 个答案:

答案 0 :(得分:2)

继承自App.xaml.cs的{​​{1}}应加载Application,导航时,应将其MainPage打包。

NavigationPage

答案 1 :(得分:1)

看起来你想让你的应用程序的根页为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中导航的更多详细信息。