`MvxformsDroidPagePresenter` i MVVMCROSS er designet for å håndtere navigasjon for Xamarin.Forms -sider i en Android -applikasjon. Når du arbeider med ikke-former anrop, for eksempel de som involverer innfødte Android-aktiviteter, omdirigerer det disse samtalene til en `mvxandroidviewpresenter`. Dette lar applikasjonen sømløst navigere mellom Xamarin.Forms -sider og innfødte Android -visninger.
Her er en detaljert forklaring på hvordan `mvxformsDroidPagePresenter` håndterer ikke-former anrop:
1. Omdirigering av ikke-former anrop: Når det fremmes en forespørsel om å vise en visning som ikke er en Xamarin.Forms-side (f.eks. En innfødt Android-aktivitet), omdirigerer mvxformsDroidPagePresenter` denne forespørselen til en `mvxandroidViewPresenter`. Denne programlederen er ansvarlig for å håndtere presentasjonslogikken for innfødte Android -visninger.
2. Implementering: For å oppnå denne omdirigering, må du opprette en tilpasset programleder som utvider `MVXFormsDroidPagePresenter`. I denne tilpassede programlederen kan du overstyre `show` -metoden for å sjekke om visningsmodellforespørselen er for en Xamarin.Forms -visning eller en innfødt Android -visning. Hvis det er for et innfødt syn, kan du bruke `mvxandroidviewpresenter` til å håndtere presentasjonen.
3. ViewModel -grensesnitt: Én tilnærming til å skille mellom Xamarin.Forms og Native Android View -modeller er å definere et grensesnitt som `IXFViewModel` som implementeres av alle Xamarin.Forms View -modeller. I din tilpassede programleder kan du sjekke om visningsmodellen implementerer dette grensesnittet. Hvis det gjør det, håndterer du det som et skjema -visning; Ellers bruker du `mvxandroidviewpresenter`.
4. Registrering: For å bruke din tilpassede programleder, må du overstyre `CreateViewPresenter` -metoden i MVVMCROSS -oppsettklassen. Denne metoden skal returnere en forekomst av din tilpassede programleder, og sikre at den brukes til alle visningspresentasjoner.
5. Livssyklusstyring: For innfødte Android -synspunkter, må du også administrere aktivitetslivssyklusen ved å implementere `imvxandroidCurrentTopactivity` og` imvxandroidactivityLifetimelistener`. Dette sikrer at MVVMCROSS er klar over den nåværende toppaktiviteten og kan håndtere navigasjons- og livssyklushendelser på riktig måte.
Ved å følge disse trinnene, kan du effektivt håndtere både Xamarin.Forms og innfødte Android -visninger i samme applikasjon ved hjelp av MVVMCROSS.
Sitasjoner:[1] https://stackoverflow.com/questions/35912706/mvvmcross-ybrid-xamarin-forms-android-activity-application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms- and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-contains-a-subform-a-on-many-form-ddf3822f-8aba-49cb-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-t-generate-detail-and-form-view-for---------view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-forms-preventing-back-navigation-on-android
[10] https://help.smartsuite.com/no/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