`Mvxformsdroidpagepresenter` trong mvvmcross được thiết kế để xử lý điều hướng cho các trang xamarin.forms trong một ứng dụng Android. Tuy nhiên, khi xử lý các cuộc gọi không dạng, chẳng hạn như các cuộc gọi liên quan đến các hoạt động Android bản địa, nó sẽ chuyển hướng các cuộc gọi này đến một `mvxandroidviewpresenter`. Điều này cho phép ứng dụng điều hướng liền mạch giữa các trang xamarin.forms và chế độ xem Android gốc.
Dưới đây là một lời giải thích chi tiết về cách `mvxformsdroidpagepresenter` xử lý các cuộc gọi không dạng:
1. Chuyển hướng các cuộc gọi không dạng hình dạng: Khi yêu cầu được thực hiện để hiển thị quan điểm không phải là trang xamarin.forms (ví dụ: hoạt động Android gốc), `mvxformsDroidPagePresenter` chuyển hướng yêu cầu này đến một` mvxandroidview Người trình bày này chịu trách nhiệm xử lý logic trình bày cho các chế độ xem Android bản địa.
2. Thực hiện: Để đạt được sự chuyển hướng này, bạn cần tạo một người trình bày tùy chỉnh mở rộng `mvxformsDroidPagePresenter`. Trong trình bày tùy chỉnh này, bạn có thể ghi đè phương thức `show` để kiểm tra xem yêu cầu mô hình xem có phải là chế độ xem xamarin.forms hay chế độ xem Android gốc không. Nếu đó là cho chế độ xem gốc, thì bạn có thể sử dụng `mvxandroidviewpresenter` để xử lý bản trình bày.
3. Giao diện ViewModel: Một cách tiếp cận để phân biệt giữa xamarin.forms và các mô hình chế độ xem Android gốc là xác định một giao diện như `ixfviewModel` được thực hiện bởi tất cả các mô hình xem Xamarin.Forms. Trong trình bày tùy chỉnh của bạn, bạn có thể kiểm tra xem mô hình xem có thực hiện giao diện này không. Nếu có, bạn xử lý nó như một chế độ xem hình thức; Mặt khác, bạn sử dụng `mvxandroidviewpresenter`.
4. Đăng ký: Để sử dụng trình bày tùy chỉnh của bạn, bạn cần ghi đè phương thức `creatEviewPresentern 'trong lớp thiết lập MVVMcross của bạn. Phương pháp này sẽ trả về một thể hiện của người trình bày tùy chỉnh của bạn, đảm bảo rằng nó được sử dụng cho tất cả các bản trình bày xem.
5. Quản lý vòng đời: Đối với các quan điểm Android bản địa, bạn cũng cần quản lý vòng đời hoạt động bằng cách thực hiện `imvxandroidcienTopActivity` và` imvxAndroidActivityLifetimelistener`. Điều này đảm bảo rằng MVVMcross nhận thức được hoạt động hàng đầu hiện tại và có thể xử lý đúng các sự kiện điều hướng và vòng đời.
Bằng cách làm theo các bước này, bạn có thể xử lý hiệu quả cả Xamarin.Forms và các chế độ xem Android gốc trong cùng một ứng dụng bằng MVVMCROSS.
Trích dẫn:[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-a-form-that-contains-a-subform-a-one-to-many-form-ddf3822f-8aba-49cb-831a-1e74d6f5f06b
[5] https:
[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-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