MVXandroidViewPresenter e MVXFormSDroidPagePresenter sono entrambi utilizzati in MVVMCRoss per applicazioni Android, ma servono a scopi diversi e sono progettati per gestire diversi tipi di viste.
mvxandroidviewpresenter
- Scopo: questo presentatore fa parte del framework MVVMCRoss ed è specificamente progettato per gestire le viste Android native. Supporta vari modelli di navigazione come attività, frammenti, frammenti nidificati, frammenti di dialogo e layout più complessi come NavigationDrawer e BottomNavigationBar [3] [6].
- Funzionalità: funge da ponte tra ViewModels e viste Android native, consentendo la personalizzazione degli attributi di presentazione. Gli sviluppatori possono estendere questo presentatore per implementare strategie di navigazione personalizzate sovrascrivendo i suoi metodi o aggiungendo nuovi attributi di presentazione [3] [6].
- Utilizzo: in genere utilizzato in applicazioni Android MVVMCRoss pure in cui le viste native sono preferite dalle pagine Xamarin.Forms.
mvxformsdroidpagepresenter
- Scopo: questo presentatore viene utilizzato in applicazioni MVVMCRoss che integrano pagine Xamarin.Forms. È progettato per gestire la presentazione di pagine di Xamarin.forms all'interno di un'applicazione Android [5] [8].
- Funzionalità: funziona convertendo le pagine di Xamarin.Forms in viste Android native e gestendo il loro ciclo di vita. È meno flessibile di MVXandroidViewPresenter in termini di modelli di navigazione Android nativi, ma è essenziale per integrare Xamarin.forms in progetti Android MVVMCRoss [5] [8].
- Utilizzo: utilizzato in applicazioni ibride in cui coesistono sia le viste Android native che le pagine di Xamarin.Forms. Richiede l'implementazione di una logica personalizzata per gestire la navigazione tra pagine di Xamarin.Forms e viste native, in quanto non supporta direttamente tutte le funzionalità di navigazione Android native [5] [8].
In sintesi, MVXandroidViewPresenter è l'ideale per le applicazioni che utilizzano viste Android native, offrendo un'ampia personalizzazione e supporto per vari modelli di navigazione specifici per Android. Al contrario, MVXFORMSDROIDPagePresenter viene utilizzato quando si integra le pagine di Xamarin.Forms in un'applicazione Android MVVMCRoss, fornendo un modo per visualizzare le pagine dei moduli come viste native ma con capacità di navigazione native limitate.
Citazioni:[1] https://michaelridland.com/category/xamarin/page/3/
[2] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-and-android-activity-application
[3] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[4] https://ridland2.rssing.com/chan-57660607/all_p1.html
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvvmcross-nativeviews/
[6] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[7] https://jessejiang.wordpress.com
[8] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-forms-preventing-back-navigation-on-android