Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hur hanterar mvxformsdroidpagePresenter icke-formsamtal


Hur hanterar mvxformsdroidpagePresenter icke-formsamtal


`MvxformsdroidpagePresenter` i MVVMCross är utformad för att hantera navigering för xamarin.Forms -sidor inom en Android -applikation. Men när man hanterar icke-formsamtal, till exempel de som involverar inbyggda Android-aktiviteter, omdirigerar det dessa samtal till en "MVXandroidviewPresenter". Detta gör att applikationen sömlöst kan navigera mellan xamarin.forms sidor och infödda Android -vyer.

Här är en detaljerad förklaring av hur `mvxformsdroidpagePresenter` hanterar icke-formsamtal:

1. Omdirigering av icke-formsamtal ringer: När en begäran görs för att visa en vy som inte är en Xamarin.Forms-sida (t.ex. en infödd Android-aktivitet), omdirigerar `mvxformsdroidpagepresenter 'denna begäran till en' Mvxandroidviewpresenter '. Denna presentatör är ansvarig för att hantera presentationslogiken för inbyggda Android -vyer.

2. Implementering: För att uppnå denna omdirigering måste du skapa en anpassad presentatör som utökar "mvxformsdroidpagePresenter". I den här anpassade presentatören kan du åsidosätta metoden "Visa" för att kontrollera om visningsmodellbegäran är för en Xamarin.Forms -vy eller en infödd Android -vy. Om det är för en infödd vy kan du sedan använda "MVXandroidViewPresenter" för att hantera presentationen.

3. ViewModel Interface: En metod för att skilja mellan xamarin.Forms och Native Android View -modeller är att definiera ett gränssnitt som `ixfviewmodel` som implementeras av alla xamarin.Forms View -modeller. I din anpassade presentatör kan du kontrollera om visningsmodellen implementerar detta gränssnitt. Om det gör det, hanterar du det som en formulärvy; Annars använder du `mvxandroidviewpresenter '.

4. Registrering: För att använda din anpassade presentatör måste du åsidosätta metoden "CreateViewPresenter" i din MVVMCross -installationsklass. Den här metoden bör returnera en instans av din anpassade presentatör och se till att den används för alla visningspresentationer.

5. Livscykelhantering: För inbyggda Android -vyer måste du också hantera aktivitetslivscykeln genom att implementera `IMVXandroidcurrentTopActivity 'och` IMVXandroidActivityLifetimelistener'. Detta säkerställer att MVVMCross är medveten om den nuvarande toppaktiviteten och kan hantera navigations- och livscykelevenemang på rätt sätt.

Genom att följa dessa steg kan du effektivt hantera både Xamarin.Forms och Native Android -vyer inom samma applikation med MVVMCross.

Citeringar:
]
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
]
[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
]
]
[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