Навигация по формам Xamarin внутри фрейма - PullRequest
0 голосов
/ 07 августа 2020

Исходя из разработки UWP, мне интересно, можно ли иметь навигацию внутри фрейма в Xamarin Forms. Я видел в документации Элемент Frame имеет свойство INavigation, поэтому я попробовал этот код:

MyFrame.Navigation.PushAsync(new Page1());

Но когда я пытаюсь выполнить этот код на Android, я получаю следующую ошибку:

System.InvalidOperationException: 'PushAsyn c не поддерживается глобально на Android, используйте NavigationPage.'

Но когда я делаю это:

public App()
{
    InitializeComponent();
    MainPage = new NavigationPage(new MainPage());
}

Навигация не работает должным образом, потому что она глобальная, а не внутри фрейма. У нас должна быть глобальная навигация или невозможно иметь конкретную c навигацию? Цель состоит в том, чтобы иметь часть c в приложении и часть, в которой происходит навигация.

Например, с платформой Uno мы можем использовать фрейм UWP и выполнять навигацию внутри него, поэтому мне интересно, почему это невозможно в Xamarin Forms.

1 Ответ

1 голос
/ 07 августа 2020

Мы могли бы определить свойство с типом INavigation в настраиваемом фрейме

public class MyFrame:Frame
{
    public INavigation CurrentNavigation { get; private set; }

    public MyFrame (INavigation navigation)
    {
        CurrentNavigation = navigation;
    }

}

в MainPage

public MainPage()
    {
        InitializeComponent();
        MyFrame myFrame = new MyFrame(this.Navigation);
        myFrame.CurrentNavigation.PushAsync(new Page1());

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