`MvxformsDroidPagePresenter` v mvvmcross je navržen tak, aby zpracovával navigaci pro stránky Xamarin.Forms v aplikaci Android. Při jednání s voláními bez formy, jako jsou takové, které se týkají nativních aktivit Android, však přesměruje tato volání na „mvxandroidviewPresenter“. To umožňuje aplikaci hladce nacházet mezi stránkami Xamarin.Forms a nativními pohledy na Android.
Zde je podrobné vysvětlení toho, jak „MVXFormsDroidPagePresenter“ volání bez formy:
1. Přesměrování volání bez formulářů: Když je podáván požadavek na zobrazení pohledu, který není stránka Xamarin.Forms (např. Nativní aktivita Android), „MVXFormSDroidPagePresenter` přesměruje tento požadavek na„ mvxAndroidViewPresenter “. Tento moderátor je zodpovědný za zpracování logiky prezentace pro nativní zobrazení Androidu.
2. implementace: Chcete -li dosáhnout tohoto přesměrování, musíte vytvořit vlastní moderátor, který rozšiřuje `mvxformsdroidPagePresenter`. V tomto vlastním moderátorovi můžete přepsat metodu `show` a zkontrolovat, zda je požadavek na zobrazení modelu pro zobrazení Xamarin.Forms nebo nativní pohled Android. Pokud je to pro nativní pohled, můžete použít k zpracování prezentace `mvxAndroidViewPresenter`.
3. rozhraní ViewModel: Jedním přístupem k rozlišování mezi Xamarin.Forms a Native Android View Modely je definovat rozhraní jako `IxfViewModel`, které je implementováno všemi modely Xamarin.Forms. Ve svém vlastním moderátorovi můžete zkontrolovat, zda model zobrazení implementuje toto rozhraní. Pokud ano, zvládnete to jako zobrazení formulářů; V opačném případě používáte `mvxandroidViewPresenter`.
4. Registrace: Chcete -li používat vlastní moderátor, musíte přepsat metodu „CreateViewPresenter“ ve vaší třídě MVVMCROSS. Tato metoda by měla vrátit instanci vlastního moderátora a zajistit, aby se použila pro všechny prezentace pohledu.
5. Správa životního cyklu: Pro nativní zobrazení Androidu musíte také spravovat životní cyklus aktivity implementací `imvxandroidCurrentTopactivity` a` imvxandroidactivitylifetimelistener`. Tím je zajištěno, že MVVMCross si je vědom současné nejvyšší aktivity a může správně zpracovávat navigační a životní cyklus.
Dodržováním těchto kroků můžete efektivně zpracovat jak Xamarin.Forms, tak nativní pohledy Android ve stejné aplikaci pomocí MVVMCross.
Citace:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-form-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://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-general-and-form-fiew-for--my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/Login-page-with-xamarin-mvvmcross-Forms-Preventing-Navigation-n-Android
[10] https://help.smartsuite.com/en/articles/6267415-form-view
[11] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-resenter
[12] https://ridland2.rssing.com/chan-57660607/all_p1.html