Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak MVXFormSdroidPagePresenter obsługuje wywołania innych


Jak MVXFormSdroidPagePresenter obsługuje wywołania innych


„MvxformsDroidPagePresenter` in MvvMcross został zaprojektowany do obsługi nawigacji dla stron Xamarin.Forms w aplikacji na Androida. Jednak w przypadku połączeń innych niż formy, takich jak te obejmujące rodzime działania na Androida, przekierowuje te wezwania do „mvxandroidviewpresenter”. Umożliwia to bezproblemowe poruszanie się między stronami Xamarin.Forms i natywnymi widokami na Androida.

Oto szczegółowe wyjaśnienie, w jaki sposób `MvxformsDroidPagePresenter 'obsługuje wywoływanie innych niż formy:

1. Przekierowanie połączeń innych niż formy: Gdy złożono żądanie, aby pokazać widok, który nie jest stroną Xamarin.Forms (np. Native Active Android), `MvxformsDroidPageSenter 'przekierowuje to żądanie na` MvXandroidviewPresenter`. Ten prezenter jest odpowiedzialny za obsługę logiki prezentacji dla rodzimych widoków na Androida.

2. Wdrożenie: Aby osiągnąć to przekierowanie, musisz utworzyć niestandardowego prezentera, który rozszerza `MvxFormsDroidPagePresenter`. W tym niestandardowym prezenter możesz zastąpić metodę „show”, aby sprawdzić, czy żądanie modelu widoku dotyczy widoku Xamarin.Forms lub natywnego widoku Androida. Jeśli dotyczy to natywnego widoku, możesz użyć „mvxandroidviewpresenter” do obsługi prezentacji.

3. Interfejs ViewModel: Jednym podejściem do rozróżnienia między Xamarin.Forms i Native Android View Modele jest zdefiniowanie interfejsu takiego jak `IXFViewModel`, który jest zaimplementowany przez wszystkie modele widoku Xamarin.Forms. W niestandardowym prezenter możesz sprawdzić, czy model widoku implementuje ten interfejs. Jeśli tak, obsługujesz to jako widok formularzy; W przeciwnym razie używasz „mvxandroidviewpresenter”.

4. Rejestracja: Aby użyć niestandardowego prezentera, musisz zastąpić metodę „CreateEviewPresenter” w klasie konfiguracji MVVMCROSS. Ta metoda powinna zwrócić instancję niestandardowego prezentera, zapewniając, że jest używana do wszystkich prezentacji widoku.

5. Zarządzanie cyklem życia: W przypadku natywnych widoków na Androida musisz również zarządzać cyklem życia aktywności, wdrażając `IMVXandroidCurrentTopactivity` i` IMVXandroidActivityLifeTiMelistener`. Zapewnia to, że MVVMCross jest świadomy bieżącej najwyższej aktywności i może właściwie obsługiwać zdarzenia nawigacyjne i cyklu życia.

Postępując zgodnie z tymi krokami, możesz skutecznie obsługiwać zarówno Xamarin.Forms, jak i natywne widoki na Androida w tej samej aplikacji za pomocą MVVMCROSS.

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