MVVMCROSS中的“ MvxFormSdroidPagePresenter”旨在处理Xamarin.Forms在Android应用程序中的导航。但是,当处理非形式调用(例如涉及本机Android活动的呼叫)时,它将这些调用重定向到“ mvxandroidviewpresenter”。这允许应用程序在Xamarin.Forms页面和本机android视图之间无缝导航。
这是“ mvxformsdroidpagepresenter”如何处理非形式调用的详细说明:
1。重定向非格式调用:当提出请求以显示不是Xamarin.forms页面(例如,本机Android活动)的视图时,`mvxformsdroidPagePresenter“将此请求重定向到`mvxandroidviewpresenter`。该主持人负责处理本地Android视图的演示逻辑。
2.实现:要实现此重定向,您需要创建一个扩展``MvxformSdroidPagePresenter''的自定义主持人。在此自定义主持人中,您可以覆盖“ show”方法来检查查看模型请求是xamarin.forms视图还是本机android视图。如果是本机视图,则可以使用“ mvxandroidviewpresenter”来处理演示文稿。
3. ViewModel接口:Xamarin.forms和本机Android视图模型之间的一种方法是定义由所有Xamarin.forms视图模型实现的“ IXFViewModel`”之类的接口。在您的自定义主持人中,您可以检查查看模型是否实现此接口。如果确实如此,则将其作为表单视图处理;否则,您会使用“ mvxandroidviewpresenter”。
4.注册:要使用自定义主持人,您需要在MVVMCross设置类中覆盖“ CreateViewPresenter”方法。此方法应返回您的自定义主持人的实例,以确保其用于所有视图演示文稿。
5。生命周期管理:对于本地Android视图,您还需要通过实现`ImvxandroidCurrentTopactivity'和`imvxandroidActivityLifetimelistener“来管理活动生命周期。这样可以确保MVVMCross意识到当前的顶级活动,并且可以正确处理导航和生命周期事件。
通过遵循以下步骤,您可以使用MVVMCross在同一应用程序中有效处理Xamarin.Forms和本机android视图。
引用:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-and-android-activity-application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-create-a-form-that-contains-a-subform-a-no-to-many-form-ddf3822f-8aba-8aba-49cb-831a-1e74d6f5f5f5f5f5f5f5f5f5f5f06b
[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-detail--form-form-view-form-view-for-my-my-table-view/m-p/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-with-xamarin-mvvmcross-forms-prorms-preventing-back-navigation-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