`MvxformsDroidPagePresenter` v MVVMcross je zasnovan za obdelavo navigacije za Xamarin.Forming strani znotraj aplikacije Android. Ko pa se ukvarjajo s klici, ki niso v obliki, kot so tisti, ki vključujejo domače dejavnosti Androida, te klice preusmeri na "mvxandroidViewpresenter". To omogoča, da aplikacija brezhibno krmari med Xamarin.Forming strani in izvornimi pogledi na Android.
Tu je podrobna razlaga, kako `mvxformsDroidpagePresenter` obravnava ne-oblike klice:
1. preusmeritev ne-oblike klicev: Ko je zahtevana zahteva, da prikaže pogled, ki ni stran xamarin.forms (npr. Native Android Activity), `mvxformsDroidpagePresenter` to zahtevo preusmeri na` mvxandroidViewPresenter`. Ta voditelj je odgovoren za ravnanje z logiko predstavitve za domače poglede na Android.
2. Izvedba: Če želite doseči to preusmeritev, morate ustvariti predstavitelja po meri, ki razširja `mvxformsDroidpagePresenter`. V tem po meri predstavitelja lahko preglasite metodo `show`, da preverite, ali je zahteva za model View za pogled Xamarin.Forms ali izvorni pogled Android. Če gre za izvorni pogled, lahko za obdelavo predstavitve uporabite `mvxandroidViewPresenter`.
3. Vmesnik ViewModel: En pristop k razliki med Xamarin.Forms in Native Android View Modeli je določiti vmesnik, kot je `ixfviewModel", ki ga izvajajo vsi modeli xamarin.forms View. V predstavitelj po meri lahko preverite, ali model View izvaja ta vmesnik. Če to stori, to ravnate kot pogled obrazcev; V nasprotnem primeru uporabljate `mvxandroidViewpresenter`.
4. Registracija: Če želite uporabljati svojega predstavitelja po meri, morate v razredu za nastavitev MVVMcross preglasiti metodo `createViewPresenter`. Ta metoda mora vrniti primerek vašega predstavitelja po meri in zagotoviti, da se uporablja za vse predstavitve pogleda.
5. Upravljanje življenjskega cikla: Za domače poglede na Android morate upravljati tudi življenjski cikel dejavnosti z izvajanjem `imvxandroidCurrentTopactivity` in` imvxandroidactivitylifetimelistener`. To zagotavlja, da se MVVMcross zaveda trenutne zgornje dejavnosti in lahko pravilno obvlada navigacijske in življenjske dogodke.
Z upoštevanjem teh korakov lahko učinkovito ravnate tako Xamarin.Forms kot izvorni Android pogledi znotraj iste aplikacije z uporabo MVVMcross.
Navedbe:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-android-activity-Application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/isissue/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-contains-a-subform-a-one-to-many-form-ddf382f-8aba-89cb-831a-1e74d6f5f06b
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-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--generate-detail-and-form-eview-for-my-table-view/m-p/527393
[9] https://stackoverflow.com/Questions/38181508/Login-page-with-xamarin-mvvmcross-forms-preventing-back -navional-android
[10] https://help.smartsuite.com/sl/articles/6267415-form-view
[11] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-presenter
[12] https://ridland2.rssing.com/chan-57660607/all_p1.html