#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");
Вот ссылка на все форматы маршрутов:
Ответ №2:
Попробуйте следующий метод :
в событии нажатия кнопки «Домой»:
Shell.Current.CurrentItem.CurrentItem.Items.Add(Your new Page);
Shell.Current.CurrentItem.CurrentItem.Items.RemoveAt(0);
Комментарии:
1. Это работает так, как задумано. спасибо за ваш ответ. Но это тот же результат, что и ранее опробованный метод. Приложение. Текущий. MainPage = new AppShell(); Метод, который вы мне дали, заключается в замене вновь созданной страницы новой страницей(). Мне нужна та же функция, которая переходит на ранее созданную страницу (не новую страницу ()), когда я нажимаю кнопку во всплывающем меню.
2. Из-за дизайна кажется невозможным полностью достичь этого эффекта.