Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie behandelt MvxFormsDroidPagePresenter Nicht-Forms-Aufrufe


Wie behandelt MvxFormsDroidPagePresenter Nicht-Forms-Aufrufe


Das `mvxFormsDroidPagePresenter` in mvvmcross ist so ausgelegt, dass die Navigation für Xamarin.Forts -Seiten innerhalb einer Android -Anwendung verarbeitet wird. Wenn Sie jedoch mit Nichtformensanrufen wie jenen, bei denen native Android-Aktivitäten beteiligt sind,, werden diese Aufrufe in einen "mvxandroidViewPresenter" umgeleitet. Auf diese Weise kann die Anwendung die Seiten von Xamarin.Forts und native Android -Ansichten nahtlos navigieren.

Hier finden Sie eine detaillierte Erklärung, wie `mvxformsDroidPagePresenter` Nicht forms-Aufrufe behandelt:

1. Umleiten von Nichtformsaufrufen: Wenn eine Anfrage zur Ansicht einer Ansicht angezeigt wird, die keine Xamarin.Forms-Seite ist (z. B. eine native Android-Aktivität), leitet die "mvxformsDroidPagePresenter" diese Anfrage an eine "mvxandroidVesenter" um. Dieser Moderator ist für die Behandlung der Präsentationslogik für native Android -Ansichten verantwortlich.

2. Implementierung: Um diese Umleitung zu erreichen, müssen Sie einen benutzerdefinierten Moderator erstellen, der `mvxFormsDroidPagePresenter` erweitert. In diesem benutzerdefinierten Präsentator können Sie die "Show" -Methode überschreiben, um zu überprüfen, ob die Ansichtsmodellanforderung für eine Xamarin.Forms -Ansicht oder eine native Android -Ansicht bestimmt ist. Wenn es sich um eine native Ansicht handelt, können Sie mit dem "MVxandroidViewPresenter" die Präsentation verwalten.

3. ViewModel -Schnittstelle: Ein Ansatz zur Unterscheidung zwischen Xamarin.formen und nativen Android -Ansichtsmodellen besteht darin, eine Schnittstelle wie "ixfViewModel" zu definieren, die von allen Xamarin.Forms -Ansichtsmodellen implementiert wird. In Ihrem benutzerdefinierten Präsentator können Sie überprüfen, ob das Ansichtsmodell diese Schnittstelle implementiert. Wenn dies der Fall ist, behandeln Sie es als Formulareansicht; Andernfalls verwenden Sie den `mvxandroidViewPresenter`.

4. Registrierung: Um Ihren benutzerdefinierten Moderator zu verwenden, müssen Sie die Methode "CreateViewPresenter" in Ihrer MVVMCross -Setup -Klasse überschreiben. Diese Methode sollte eine Instanz Ihres benutzerdefinierten Moderators zurückgeben, um sicherzustellen, dass sie für alle Ansichtspräsentationen verwendet wird.

5. Lebenszyklusmanagement: Für native Android -Ansichten müssen Sie auch den Aktivitätslebenszyklus verwalten, indem Sie "ImvxandroidcurrentTopActivity" und "ImvxandroidActivityLiFetImelistener" implementieren. Dies stellt sicher, dass MVVMCross die aktuelle Top -Aktivität kennt und die Navigations- und Lebenszyklusereignisse ordnungsgemäß behandeln kann.

Wenn Sie diese Schritte ausführen, können Sie sowohl Xamarin.Forms als auch native Android -Ansichten in derselben Anwendung mit MVVMCross effektiv verarbeiten.

Zitate:
[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-formies-android-activity-application
[2] https://stackoverflow.com/questions/36599398/mvmcross-with-xamarin-formies-and-masterdetail
[3] https://github.com/mvvmcross/mvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-contains-a-subform-a-one-to-many-formddf3822f-8aba-49cb-831a-1e74d6f5f06b
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvmcross-nativeviews/
[6] https://xamarin97.rsssing.com/chan-50656755/article24666.html
[7] https://xamarin91.rsssing.com/chan-50628054/all_p539.html
[8] https://www.googlecloudcommunity.com/gc/appsheet-q-a/system-doesn-t-generate-detail-for-form-view-for-my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvmcross-forms-preventing-back-navigation-on-droid
[10] https://help.smartsuite.com/en/articles/6267415-form-view
[11] https://www.mvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-presenter
[12] https://ridland2.rsssing.com/chan-57660607/all_p1.html