Как переключать страницы в оболочке Xamarin без кнопки «Назад»?

#xamarin #xamarin.forms #navigation #xamarin.forms.shell

#xamarin #xamarin.формы #навигация #xamarin.forms.shell

Вопрос:

Я хочу сделать кнопку «Домой» в верхней части приложения на основе оболочки. (Имеется в виду приложение Xanimals.)

Назначение этой кнопки «Домой» — перейти на одну из определенных рутинных страниц в командной оболочке.

Функция gotoasync() по умолчанию добавляет предыдущую страницу в стек навигации, и кнопка Назад включена. Мне не нужна кнопка «Назад», я просто хочу двигаться, как при нажатии кнопки всплывающего окна в структуре оболочки.

Пожалуйста, помогите мне.

Комментарии:

1. какова будет функция «домашней кнопки», аналогичная кнопке «Назад»? или вы просто хотите отключить кнопку «Назад»?

2. Что я хочу сделать, так это переключиться на определенную страницу при нажатии кнопки «Домой». Вместо кнопки «Назад» должна быть кнопка меню.

3. попробуйте использовать Shell.Current.Navigation.PopToRootAsync() вместо GotoAsync()

4. хм .. Есть ли какой-нибудь способ перейти на определенную страницу без сохранения истории предыдущей страницы?

5. Вы пытаетесь использовать Shell.Current.Navigation.PushModalAsync() метод?

Ответ №1:

Вы можете попробовать этот метод, который переключается на другой стек навигации; предполагая, что домашний просмотр зарегистрирован с именем маршрута home в вашем AppShell.xaml

 await Shell.Current.GoToAsync("//home");
 

Вот ссылка на все форматы маршрутов:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/shell/navigation#absolute-routes

Ответ №2:

Попробуйте следующий метод :

в событии нажатия кнопки «Домой»:

 Shell.Current.CurrentItem.CurrentItem.Items.Add(Your new Page);
Shell.Current.CurrentItem.CurrentItem.Items.RemoveAt(0);
 

Комментарии:

1. Это работает так, как задумано. спасибо за ваш ответ. Но это тот же результат, что и ранее опробованный метод. Приложение. Текущий. MainPage = new AppShell(); Метод, который вы мне дали, заключается в замене вновь созданной страницы новой страницей(). Мне нужна та же функция, которая переходит на ранее созданную страницу (не новую страницу ()), когда я нажимаю кнопку во всплывающем меню.

2. Из-за дизайна кажется невозможным полностью достичь этого эффекта.