Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cómo maneja MVXFormsDroidPagePresenter sin formularios


¿Cómo maneja MVXFormsDroidPagePresenter sin formularios


El `MVXFormSDroidPagePresenter` en MVVMCross está diseñado para manejar las páginas de navegación para xamarin.forms dentro de una aplicación Android. Sin embargo, cuando se trata de llamadas sin formas, como las que involucran actividades nativas de Android, redirige estas llamadas a un 'MVXandroidViewPresenter`. Esto permite que la aplicación navegue sin problemas entre las páginas de Xamarin.forms y las vistas nativas de Android.

Aquí hay una explicación detallada de cómo `mvxformsdroidPagePresenter` maneja las llamadas sin forma:

1. Redireccionando las llamadas sin forma: cuando se realiza una solicitud para mostrar una vista que no es una página de Xamarin.Forms (por ejemplo, una actividad nativa de Android), el `MVXFormsDroidPagePresenter` redirige esta solicitud a un` mvxandViewPresenter`. Este presentador es responsable de manejar la lógica de presentación para las vistas nativas de Android.

2. Implementación: para lograr esta redirección, debe crear un presentador personalizado que extienda 'MVXFormSDroidPagePresenter`. En este presentador personalizado, puede anular el método `show` para verificar si la solicitud del modelo de vista es para una vista de Xamarin.Forms o una vista de Android nativa. Si es para una vista nativa, puede usar el `mvxandroidViewPresenter` para manejar la presentación.

3. ViewModel Interface: un enfoque para diferenciar entre Xamarin.Forms y modelos nativos de vista Android es definir una interfaz como `IXFViewModel` que implementa todos los modelos de vista Xamarin.Forms. En su presentador personalizado, puede verificar si el modelo de vista implementa esta interfaz. Si lo hace, lo maneja como una vista de formularios; De lo contrario, usa el `mvxandroidViewPresenter`.

4. Registro: para usar su presentador personalizado, debe anular el método 'CreateViewPresenter` en su clase de configuración MVVMCross. Este método debe devolver una instancia de su presentador personalizado, asegurando que se utilice para todas las presentaciones de vista.

5. Gestión del ciclo de vida: para las vistas nativas de Android, también debe administrar el ciclo de vida de la actividad implementando `IMVXandroidCurrentTopActivity` y` IMVXandroidActivityLifetImelistener`. Esto asegura que MVVMCross sea consciente de la actividad superior actual y pueda manejar adecuadamente los eventos de navegación y ciclo de vida.

Siguiendo estos pasos, puede manejar de manera efectiva tanto Xamarin.Forms como las vistas nativas de Android dentro de la misma aplicación utilizando MVVMCross.

Citas:
[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-android-activity-plication
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-andmasterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-contains-a-subform-a-ne-one-many-form-ddf3822f-8aba-49cb-831a-1e74d6f5f06bbb
[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-andform-view-for-my-pable-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvvmcross-forms-preventing-back-navigation-on-android
[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