簡體   English   中英

Xamarin.Forms中的導航不起作用

[英]Navigation in Xamarin.Forms not working

導航不起作用,方法是將Mainpage設置為導航頁面,或者將Mainpage設置為另一個內容頁面,因為我嘗試了以下解決方案: 如何在客戶端項目(IOS / Android)中將一個Content頁面導航到另一個Content頁面Xamarin形式?

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代碼,則也將無法正常工作

Application繼承的App.xaml.cs應該正在加載MainPage並且為了進行導航,應該將其包裝在NavigationPage

public partial class App : Application
{
    public App()
    {
        InitializeComponent();

        var navigationPage = new NavigationPage(new MainPage());
        MainPage = navigationPage;
    }

    ...
}

看來您想取消您的應用程序,其根頁面為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中導航的更多詳細信息, 請單擊此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM