Навигация в Xamarin.Forms не работает - PullRequest
0 голосов
/ 01 июня 2018

Навигация не работает, если настроить главную страницу в качестве страницы навигации или настроить главную страницу как другую страницу контента, когда я попробовал решение Здесь: Как перейти с одной страницы контента на другую страницу контента из клиентского проекта(IOS / Android) в формах 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, то он тоже не будет работать

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Похоже, вы хотите, чтобы ваше приложение имело корневую страницу, равную 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 нажмите здесь .

0 голосов
/ 01 июня 2018

Ваш App.xaml.cs, который наследуется от Application, должен загружать ваш MainPage, а для навигации он должен быть заключен в NavigationPage.

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

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

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...