2017-03-03 3 views
1

Ich habe eine Master-Detailseite eingerichtet mit Prism 6.3 pre-2, ich habe es endlich funktioniert, wie ich erwartet habe, um zu "Detail" Seiten zu navigieren; Der Hamburger-Button zeigt also den Slide-Drawer und ich habe eine einfache ListView, die an das ViewModel gebunden ist. Ich listet einige Items auf und ich benutze den NavigateCommand, um korrekt zu navigieren.Prism-Navigation in Xamarin Forms - MasterDetailPage

Jetzt ist das erwartete Verhalten (in Android), wenn Sie zu anderen Elementen im Ausklappmenü navigiert haben, sollten Sie in der Lage sein, die Hardware-Zurück-Taste zu verwenden, um zum allerersten "Detail" zu navigieren Seite gezeigt.

Sagen Sie zum Beispiel, dass Ihre App über dieses Setup verfügt und die aufgelisteten Elemente Posteingang, Entwürfe und Gesendet sind. Die Standardansicht wird unabhängig von der Standard-Detailansicht angezeigt. In diesem Beispiel handelt es sich höchstwahrscheinlich um den Posteingang. Wenn ich also zu Gesendet navigiere und dann zurück drücke, sollte es zurück zum Posteingang gehen. Wenn ich zu Gesendet -> Entwürfe gehe und dann zurück drücke, sollte es zurück zum Posteingang gehen, da dies der Standardstartpunkt ist. Wenn Sie dann erneut drücken, sollte die App beendet werden. Im Moment wird die Prism-Navigation verwendet, egal auf welcher Seite Sie diese Einstellung verwenden, sie wird sofort beendet.

Bitte beachten Sie, ich habe es richtig eingestellt, ich so etwas wie dies im wesentlichen (als exmaple) haben:

await NavigationService.NavigateAsync("RootPage/BaseNavigationPage/InboxPage");

Wenn ich Sent eine andere Seite wie zu sagen, navigieren, die relative URI ist wie so:

"BaseNavigationPage/SentPage"

wenn nun wieder gedrückt wird, soll es das InboxPage zurückgehen, ich bin nicht sicher, wie dieses Problem behoben werden kann ... Gehirn ... ???

Zusätzlich gibt es ein anderes unerwartetes Verhalten, das fehlt. Wenn ich eine modale Seite anzeigen möchte, während ich eine Master-Detailseite verwende, funktioniert sie nicht, wie eine von Google geschriebene App ... Dies ist leicht zu sehen, wenn Sie eine Google-App mit diesem Layout öffnen. Wenn Sie ein modales Fenster für etwa Einstellungen zeigen, es erscheint, die Navigations Titel hat festgelegt und ein Pfeil zurück, sieht im Grunde genau das gleiche wie wenn Sie einen Schritt weiter unten wie navigiert haben:

"RootPage/BaseNavigationPage/InboxPage/EmailPage" 

jedoch ich erwartete, diese Funktionalität verfügbar sein, wenn ich folgendes getan:

"BaseNavigationPage/SettingsPage", useModalNavigation:true 

wenn Sie einfach mit einer beliebigen Google gemacht Anwendung spielen, um Sie diese Funktionen sehen werden, und diese sind, was ich erwarte, und sie fühlen sich natürlich.

Hilfe zur Verfügung, um dies zu erreichen ...? wieder ... Brian ...?

All dies sollte einfach sein, aber es erweist sich nicht als ...

Antwort

1

das Verhalten bekommen Sie mit dem NavigationPage in einem MasterDetailPage Szenario wollen, müssen Sie eine benutzerdefinierte NavigationPage erstellen, die INavigationPageOptions und Set implementiert die ClearNavigationStackOnNavigation-Eigenschaft auf false. Dadurch wird der Navigations-Stack der NavigationPage bei jeder Navigation aktiviert.

Was Ihr anderes "erwartetes Verhalten" in Bezug auf die modale Navigation angeht, sind Ihre Kenntnisse über die modale Navigation falsch. Die modale Navigation bietet keine Software-Zurück-Schaltfläche. Jedes Mal, wenn Sie eine Software-Zurück-Schaltfläche möchten, müssen Sie die Seiten in eine Navigationsseite

eingewickelt haben