`MvxformsDroidPagePresenter 'i MVVMCross er designet til at håndtere navigation til xamarin.forms sider inden for en Android -applikation. Når man beskæftiger sig med ikke-formularopkald, såsom dem, der involverer indfødte Android-aktiviteter, omdirigerer det imidlertid disse opkald til en `mvxandroidviewpresenter '. Dette gør det muligt for ansøgningen at problemfrit navigere mellem Xamarin.Forms -sider og indfødte Android -visninger.
Her er en detaljeret forklaring af, hvordan `mvxformsDroidPagePresenter` håndterer ikke-formularopkald:
1. omdirigering af ikke-formularopkald: Når der anmodes om en anmodning om at vise en visning, der ikke er en Xamarin.Forms-side (f.eks. En indfødt Android-aktivitet), omdirigerer `MVXFormsDroidPagePresenter` denne anmodning til en` MVXANDROIDViewPresenter '. Denne programleder er ansvarlig for at håndtere præsentationslogikken for indfødte Android -visninger.
2. Implementering: For at opnå denne omdirigering skal du oprette en brugerdefineret programleder, der udvider `mvxformsdroidpagepresenter '. I denne brugerdefinerede programleder kan du tilsidesætte metoden 'Show' for at kontrollere, om visningsmodelanmodningen er til en Xamarin.Forms -visning eller en indfødt Android -visning. Hvis det er til en oprindelig visning, kan du derefter bruge `MVXandroidViewPresenter` til at håndtere præsentationen.
3. ViewModel -interface: En tilgang til at skelne mellem Xamarin.Forms og Native Android View -modeller er at definere en grænseflade som `IxfViewModel`, der implementeres af alle Xamarin.Forms View -modeller. I din brugerdefinerede programleder kan du kontrollere, om visningsmodellen implementerer denne grænseflade. Hvis det gør det, håndterer du det som en formularvisning; Ellers bruger du `mvxandroidviewpresenter '.
4. Registrering: For at bruge din brugerdefinerede programleder skal du tilsidesætte metoden `createViewPresenter` i din MVVMCROSS -installationsklasse. Denne metode skal returnere en forekomst af din brugerdefinerede programleder og sikre, at den bruges til alle visninger af visninger.
5. Livscyklusstyring: For indfødte Android -visninger er du også nødt til at styre aktivitetslivscyklussen ved at implementere `imvxandroidcurrentTopactivity 'og` imvxandroidActivityLifetimElistener'. Dette sikrer, at MVVMCROSS er opmærksom på den aktuelle topaktivitet og kan håndtere navigations- og livscyklusbegivenheder korrekt.
Ved at følge disse trin kan du effektivt håndtere både Xamarin.Forms og indfødte Android -visninger inden for den samme applikation ved hjælp af MVVMCROSS.
Citater:)
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-former-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
)
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvvmcross-tativeviews/
[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-view-for-my-table-view/m-p/527393
)
[10] https://help.smartsuite.com/en/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