В основном представлении Xamarin.Forms Prism не отображается значок гамбургера, когда отображается поповер

Я настроил мое приложение Xamarin.Forms Prism для использования страницы Master-Detail (с MasterBehavior, установленной в Popover) для своей навигации, но я заметил некоторые различия между моим приложением Prism и примером приложения Xamarin.Forms, использующим эту страницу ( https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/).

В Android нажатие на значок гамбургера заставляет мастера выдвигаться в обоих приложениях. В примере приложения значок гамбургера остается видимым. В моем приложении Prism значок гамбургера не остается видимым, так как главный вид занимает всю высоту экрана, как показано ниже:

Android

В UWP нажатие на значок гамбургера заставляет мастера выдвигаться в обоих приложениях. В примере приложения значок гамбургера остается видимым, а заголовок главной страницы отображается вверху. В моем приложении Prism ни один из этих элементов не виден, как показано ниже:

UWP

Кроме того, в верхней и нижней части главного вида приложения Prism, по-видимому, имеется некоторый тип отступов или пустое место.

Введены ли эти различия самой Призмой или есть способ настроить мастер так, чтобы он вел себя аналогично ванильному образцу Xamarin.Forms?


ОБНОВЛЕННЫЕ СКРИНШОТЫ

Чтобы лучше продемонстрировать проблему, которую я вижу, вот еще несколько скриншотов.

Образец Xamarin, запуск приложения, а затем нажатие на значок гамбургера сохраняет панель навигации (со значком гамбургера) видимой с видимым мастером:

Xam

Мое приложение Prism, запуск приложения и затем нажатие на значок гамбургера заставляет главный вид занимать всю высоту экрана:

призма

1 ответ

Решение

Чтобы значок гамбургера отображался при переходе на страницу, вам нужно обернуть деталь в NavigationPage. Поэтому зарегистрируйте навигационную страницу для навигации, а затем добавьте ее в свой URI навигации.

    protected override void OnInitialized()
    {
        NavigationService.NavigateAsync("MyMasterDetail/NavigationPage/MainPage");
    }

Взгляните на этот пример с песочницей:

https://github.com/PrismLibrary/Prism/tree/master/Sandbox/Xamarin

Другие вопросы по тегам