MVVMCross `MVXFormSdroidPagePresenter` ir paredzēts Xamarin.Forms lapu apstrādei Android lietojumprogrammā. Tomēr, nodarbojoties ar neveidotiem zvaniem, piemēram, tiem, kas saistīti ar vietējām Android aktivitātēm, tas novirza šos zvanus uz “mvxandroidViewPresenter”. Tas ļauj lietojumprogrammai nemanāmi orientēties starp Xamarin.Forms lapām un vietējiem Android skatiem.
Šeit ir detalizēts skaidrojums par to, kā `MVXFormSdroidPagePreSenter` rīkojas ar neveidīgiem zvaniem:
1. NEATKARĪGI NEATKARĪGI Zvani: Kad tiek iesniegts pieprasījums parādīt skatu, kas nav Xamarin.Forms lapa (piemēram, vietējā Android darbība), `mvxformSdroidPagePresenter` novirza šo pieprasījumu uz“ mvxandroidViewpresenter`. Šis vadītājs ir atbildīgs par prezentācijas loģikas apstrādi vietējiem Android skatiem.
2. Ievietošana: lai sasniegtu šo novirzīšanu, jums jāizveido pielāgots vadītājs, kas paplašina `mvxFormsDroidPagePreSenter`. Šajā pielāgotajā vadītājā jūs varat ignorēt metodi “Rādīt”, lai pārbaudītu, vai skata modeļa pieprasījums ir paredzēts Xamarin.Forms View vai vietējam Android skatam. Ja tas ir paredzēts vietējam skatam, prezentācijas apstrādei varat izmantot `mvxandroidViewpresenter`.
3. ViewModel interfeiss: Viena pieeja, lai atšķirtu Xamarin.Forms un vietējos Android View modeļus, ir definēt saskarni, piemēram, “ixfviewModel”, kuru ievieš visi Xamarin.Forms skata modeļi. Pielāgotajā vadītājā varat pārbaudīt, vai skata modelis īsteno šo saskarni. Ja tas notiek, jūs to apstrādājat kā veidlapas skatu; Pretējā gadījumā jūs izmantojat `mvxandroidViewPresenter`.
4. Reģistrācija: Lai izmantotu savu pielāgoto vadītāju, MVVMCROSS iestatīšanas klasē jums ir jāpārvar “CreateViewPresenter” metode. Šai metodei vajadzētu atgriezt jūsu pielāgotā vadītāja gadījumu, nodrošinot, ka tā tiek izmantota visām skata prezentācijām.
5. Dzīves cikla pārvaldība: vietējiem android skatiem jums arī jāpārvalda aktivitātes dzīves cikls, ieviešot `imvxandroidCurrentTopactivity` un` imvxandroidaktivityLifeTimElistener`. Tas nodrošina, ka MVVMCross zina par pašreizējo augstāko darbību un var pareizi rīkoties ar navigāciju un dzīves cikla notikumiem.
Veicot šīs darbības, jūs varat efektīvi apstrādāt gan Xamarin.Forms, gan vietējos Android skatus vienā un tajā pašā lietojumprogrammā, izmantojot MVVMCross.
Atsauces:[1.]
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
.
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvvmcross-nativeViews/
[6] https://xamarin97.rsing.com/chan-50656755/article24666.html
[7] https://xamarin91.rsing.com/chan-50628054/all_p539.html
[8] https://www.googlecloudcommunity.com/gc/appsheet-q-a/system-doesn-t-generate-detail-and-for-view-for-my-table-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-forms-preventing-back-on-android
[10] https://help.smartsuite.com/en/articles/6267415-form-view
[11] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-form-view-presenter
[12] https://ridland2.rsing.com/chan-57660607/all_p1.html