MVVMCross'taki `mvxformsdroidPresenter`, bir Android uygulamasındaki Xamarin.forms sayfaları için navigasyonu işlemek üzere tasarlanmıştır. Bununla birlikte, yerel Android etkinliklerini içerenler gibi form olmayan çağrılarla uğraşırken, bu çağrıları bir 'mvxandroidViewPresenter' olarak yönlendirir. Bu, uygulamanın Xamarin.forms sayfaları ve yerel Android görünümleri arasında sorunsuz bir şekilde gezinmesini sağlar.
İşte `` mvxformsDroidPePresenter'ın formsuz çağrıları nasıl ele aldığının ayrıntılı bir açıklaması:
1. Form olmayanların yeniden yönlendirilmesi: Xamarin.forms sayfası (örneğin, yerel bir Android etkinliği) olmayan bir görünüm göstermek için bir istek yapıldığında, `mvxformsdroidPagePresenter` bu isteği bir` mvxandroidVePresenter` 'e yönlendirir. Bu sunumcu, yerel Android görünümleri için sunum mantığını ele almaktan sorumludur.
2. Uygulama: Bu yeniden yönlendirmeyi elde etmek için, `MVXFormsDroidPePresenter` `genişleyen özel bir sunum yapan kişi oluşturmanız gerekir. Bu özel sunum yapanda, görünüm modeli isteğinin bir xamarin.forms görünümü veya yerel bir Android görünümü olup olmadığını kontrol etmek için `` show '' yöntemini geçersiz kılabilirsiniz. Eğer yerel bir görünüm için ise, sunumu ele almak için `mvxandroidViewpresenter` kullanabilirsiniz.
3. ViewModel Arabirimi: Xamarin.Forms ve Native Android View modelleri arasında ayrım yapmak için bir yaklaşım, tüm xamarin.forms view modelleri tarafından uygulanan `` ixfviewmodel 'gibi bir arayüz tanımlamaktır. Özel sunumcunuzda, görünüm modelinin bu arayüzü uygulayıp uygulamadığını kontrol edebilirsiniz. Eğer öyleyse, bunu bir form görünümü olarak ele alırsınız; Aksi takdirde, `mVxandroidViewPresenter` `kullanırsınız.
4. Kayıt: Özel sunumcunuzu kullanmak için, MVVMCross kurulum sınıfınızda `` CreateViewPresenter '' yöntemini geçersiz kılmanız gerekir. Bu yöntem, tüm görünüm sunumları için kullanılmasını sağlayarak özel sunumcunuzun bir örneğini döndürmelidir.
5. Yaşam Döngüsü Yönetimi: Yerel Android görünümleri için, `` imvxandroidCurrentTopactivity` ve `ImVxandroidAvtiveSlifeTimelistener` uygulayarak etkinlik yaşam döngüsünü de yönetmeniz gerekir. Bu, MVVMCross'un mevcut üst aktivitenin farkında olmasını ve navigasyon ve yaşam döngüsü olaylarını düzgün bir şekilde işleyebilmesini sağlar.
Bu adımları izleyerek, MVVMCross kullanarak aynı uygulamadaki Xamarin.forms ve Native Android görünümlerini etkili bir şekilde işleyebilirsiniz.
Alıntılar:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin--android-activity-ppleplication
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdeetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-for-that-contains-a-subform-a-on-to-49cb-831a-1e74d6f5f06b
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvmcross-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-genera-detail-and-form-view-for-my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvmcross-forts-back-navigation-nroid-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