Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana cara menangani panggilan non-bentuk mvxFormsdroid


Bagaimana cara menangani panggilan non-bentuk mvxFormsdroid


`MVXFormSDroidPagePresenter` di MVVMCross dirancang untuk menangani navigasi untuk Xamarin.Forms halaman dalam aplikasi Android. Namun, ketika berhadapan dengan panggilan non-bentuk, seperti yang melibatkan aktivitas Android asli, ia mengarahkan kembali panggilan ini ke `mvxandroidviewPresenter`. Ini memungkinkan aplikasi untuk menavigasi dengan mulus antara Xamarin.Forms Pages dan Views Android asli.

Berikut penjelasan terperinci tentang bagaimana `mvxformsdroidpagePresenter` menangani panggilan non-formulir:

1. Mengalihkan panggilan non-formulir: Ketika permintaan dibuat untuk menunjukkan tampilan yang bukan halaman Xamarin.Forms (mis., Aktivitas Android asli), `mvxformsdroidPagePresenter` mengarahkan permintaan ini ke` mvxandroidViewPresenter`. Presenter ini bertanggung jawab untuk menangani logika presentasi untuk tampilan Android asli.

2. Implementasi: Untuk mencapai pengalihan ini, Anda perlu membuat presenter kustom yang memperluas `mvxFormSdroidPagePresenter`. Pada presenter kustom ini, Anda dapat mengganti metode `show` untuk memeriksa apakah permintaan model tampilan untuk tampilan Xamarin.Forms atau tampilan Android asli. Jika untuk tampilan asli, Anda kemudian dapat menggunakan `mvxandroidViewPresenter` untuk menangani presentasi.

3. ViewModel Interface: Salah satu pendekatan untuk membedakan antara Xamarin.Forms dan model Android View asli adalah untuk mendefinisikan antarmuka seperti `ixfviewModel` yang diimplementasikan oleh semua model tampilan Xamarin.Forms. Di presenter khusus Anda, Anda dapat memeriksa apakah model tampilan mengimplementasikan antarmuka ini. Jika ya, Anda menanganinya sebagai tampilan formulir; Jika tidak, Anda menggunakan `mvxandroidViewPresenter`.

4. Pendaftaran: Untuk menggunakan presenter khusus Anda, Anda perlu mengganti metode `CreateViewPresenter` di kelas pengaturan MVVMCROSS Anda. Metode ini harus mengembalikan instance presenter kustom Anda, memastikan bahwa itu digunakan untuk semua presentasi tampilan.

5. Manajemen Siklus Hidup: Untuk tampilan Android asli, Anda juga perlu mengelola siklus hidup aktivitas dengan menerapkan `imvxandroidCurrenttopactivity` dan` imvxandroidactivitylifetimelistener`. Ini memastikan bahwa MVVMCross menyadari aktivitas teratas saat ini dan dapat menangani navigasi dan peristiwa siklus hidup dengan benar.

Dengan mengikuti langkah -langkah ini, Anda dapat secara efektif menangani Xamarin.Forms dan tampilan Android asli dalam aplikasi yang sama menggunakan MVVMCross.

Kutipan:
[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-yny-form-ddf3822f-8AbA-49cb-831a-1e74d6f5f06b
[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---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-droid
[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