De `MVXFormSDroidPagePresenter` in MVVMCross is ontworpen om navigatie voor Xamarin.Forms -pagina's binnen een Android -toepassing af te handelen. Bij het omgaan met niet-gevormen-oproepen, zoals die met native Android-activiteiten, wordt deze oproepen echter doorgericht naar een `mvxandroidViewPresenter`. Hierdoor kan de toepassing naadloos navigeren tussen Xamarin.Forms -pagina's en native Android -weergaven.
Hier is een gedetailleerde uitleg over hoe `MvxFormSdroidPagePresenter` niet-gevormen oproepen verwerkt:
1. Redel niet-rendementsoproepen om te leiden: wanneer een verzoek wordt gedaan om een weergave weer te geven die geen Xamarin.forms-pagina is (bijv. Een native Android-activiteit), leidt de `MVXFormSDroidPagePresenter` dit verzoek om naar een` MVXandroidViewPresenter`. Deze presentator is verantwoordelijk voor het verwerken van de presentatielogica voor native Android -weergaven.
2. Implementatie: om deze omleiding te bereiken, moet u een aangepaste presentator maken die `MVXFormSDroidPagePresenter` uitbreidt. In deze aangepaste presentator kunt u de methode `show` overschrijven om te controleren of het verzoek van de weergavemodel voor een Xamarin.Forms -weergave of een native Android -weergave is. Als het voor een native weergave is, kunt u de `mvxandroidViewPresenter` gebruiken om de presentatie te verwerken.
3. ViewModel -interface: een benadering om onderscheid te maken tussen Xamarin.Forms en Native Android View -modellen is het definiëren van een interface zoals `IXFViewModel` die wordt geïmplementeerd door alle Xamarin.Forms View -modellen. In uw aangepaste presentator kunt u controleren of het weergavemodel deze interface implementeert. Als dit het geval is, behandelt u het als een formulierenweergave; Anders gebruikt u de `mvxandroidViewPresenter`.
4. Registratie: om uw aangepaste presentator te gebruiken, moet u de methode `CreateViewPresenter' in uw MVVMCross -setup -klasse overschrijven. Deze methode zou een exemplaar van uw aangepaste presentator moeten retourneren, zodat deze wordt gebruikt voor alle weergavepresentaties.
5. Lifecycle Management: voor native Android -weergaven moet u ook de Lifecycle van de activiteiten beheren door `ImvxandroidCurrentTopActivity` en` ImvxandroidActivityLifetimelistener` te implementeren. Dit zorgt ervoor dat MVVMCross zich bewust is van de huidige topactiviteit en navigatie- en levenscyclusgebeurtenissen goed kan verwerken.
Door deze stappen te volgen, kunt u zowel Xamarin.Forms als native Android -weergaven in dezelfde toepassing effectief verwerken met behulp van MVVMCross.
Citaten:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-dand-dand-dandife-enroid-activity-application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-vorm-and-masterDetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-ontains-a-subform-a-one-to-many-form-ddf3822f-8aba-49cb-831a-1e74d6f5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f5f5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f06b5f5f06b5
[5] https://michaelridland.com/xamarin/mixing-xamarin-morms-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-my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-vorms-preventing-back-navigatie-on-droid
[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