MVVMCrossの「MVXFormsDroidPagePresenter」は、Androidアプリケーション内のXamarin.Formsページのナビゲーションを処理するように設計されています。ただし、ネイティブAndroidアクティビティを含むものなど、非形式の呼び出しを扱う場合、これらの呼び出しを「MVXandroidViewPresenter」にリダイレクトします。これにより、アプリケーションはXamarin.FormsページとネイティブAndroidビューの間でシームレスにナビゲートできます。
以下は、「mvxformsdroidpagepresenter」をどのように処理するかについての詳細な説明を示します。
1.非型の呼び出しのリダイレクト:Xamarin.Formsページ(ネイティブAndroidアクティビティなど)ではないビューを表示するリクエストが作成された場合、 `mvxformsdroidPagePresenter`はこのリクエストをリダイレクトします。このプレゼンターは、ネイティブAndroidビューのプレゼンテーションロジックを処理する責任があります。
2。実装:このリダイレクトを達成するには、「MVXFormsDroidPagePresenter」を拡張するカスタムプレゼンターを作成する必要があります。このカスタムプレゼンターでは、「show」メソッドをオーバーライドして、ビューモデル要求がxamarin.formsビューまたはネイティブAndroidビューに対してあるかどうかを確認できます。ネイティブビューの場合は、「mvxandroidviewpresenter」を使用してプレゼンテーションを処理できます。
3。ビューモデルインターフェイス:Xamarin.FormsとNative Androidビューモデルを区別する1つのアプローチは、すべてのXamarin.Forms View Modelsによって実装される「IXFViewModel」のようなインターフェイスを定義することです。カスタムプレゼンターでは、ビューモデルがこのインターフェイスを実装するかどうかを確認できます。もしそうなら、あなたはそれをフォームビューとして扱います。それ以外の場合は、 `mvxandroidviewpresenter`を使用します。
4。登録:カスタムプレゼンターを使用するには、MVVMCrossセットアップクラスの「CreateViewPresenter」メソッドをオーバーライドする必要があります。この方法は、カスタムプレゼンターのインスタンスを返し、すべてのビュープレゼンテーションに使用されるようにする必要があります。
5。ライフサイクル管理:ネイティブのAndroidビューの場合、「imvxandroidcurrenttopactivity」を実装してアクティビティライフサイクルを管理する必要があります。これにより、MVVMCrossは現在のトップアクティビティを認識し、ナビゲーションやライフサイクルイベントを適切に処理できることが保証されます。
これらの手順に従うことにより、MVVMCrossを使用して同じアプリケーション内のXamarin.Forms.FormsとNative Androidビューの両方を効果的に処理できます。
引用:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-and-android-activity-application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-nmasterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that that-contains-a-subform-a-one-to-many-form-ddf3822-8a-49cb-831a-1e74d6f5f5f06b
[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-tail-detail-and-form-view-for-my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-porms-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