2016-08-30 2 views
0

У меня есть приложение xamarin forms/prism, а моя задняя кнопка моего устройства ничего не делает на начальной странице.Кнопка «Назад» закрывает приложение после навигации, но не раньше

Если я перехожу на другую страницу, она закрывает приложение, как ожидалось. Если я снова перейду на начальную страницу, она также закрывает приложение - но не только, если приложение только что началось.

Есть ли что-то, что мне не хватает?

Мои class App в основном имеет OnInitialized, что переход к начальной странице:

protected override void OnInitialized() 
{ 
    NavigationService.NavigateAsync("MyMasterDetail/MyNavigationPage/StartPage", animated: false); 
} 

На MyMasterDetail, есть кнопки для перехода к MyNavigationPage/SettingsPage и другие страницы, как это.

Не имеет значения, если я использую Android 5 в эмуляторе или Android 6 на реальном устройстве, поведение будет таким же.

ответ

0

При использовании MasterDetail в качестве вашего корня вы фактически не путешествуете нигде. Вы просто меняете свойство Detail на MasterDetail на другую страницу. Это не действие навигации. Таким образом, вы действительно не плаваете. Если вы хотите подделать его, вам нужно добавить INavigationPageOptions в MyNavigationPage и установить для свойства ClearNavigationStackOnNavigation значение false. Это будет непрерывно выводить новые страницы на страницу MasterDetailPage.Detail MyNavigationPage без очистки стека (PopToRoot). Тогда это позволит вашей кнопке bac вести себя так, как вам хочется.

+0

Просто, чтобы убедиться, что я прав: если я не удаляю стек при перемещении, кнопка «Назад» закроет мое приложение, когда я еще не сделал навигацию? – Haukinger

+0

Нет, если вы не очистите стек, кнопка возврата будет работать так, как ожидалось, потому что вы добавляете страницы в стек навигации. Если вы очистите стек, ваша кнопка возврата закроет ваше приложение, потому что у вас ничего не будет на вашем стеке навигации, кроме вашего root MasterDetailPage –

+0

. Думаю, есть недоразумение. Чтобы закрыть приложение, нажмите кнопку «Назад». Но это не закрывает его, если я не «переместился»/изменил свойство детали один раз. – Haukinger

Смежные вопросы