Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ar galite paaiškinti „ViewPresenters“ vaidmenį mvvmcross


Ar galite paaiškinti „ViewPresenters“ vaidmenį mvvmcross


„ViewPresenters“ vaidmuo MVVMCROSS

„MVVMCross“ „ViewPresenters“ vaidina lemiamą vaidmenį valdant navigaciją ir pateikimą rodiniuose programoje. Jie yra atsakingi už tai, kaip rodomi vaizdai, kurie yra būtini kuriant tvirtą ir lanksčią vartotojo sąsają skirtingose ​​platformose.

Pagrindinės atsakomybės

1. Navigacijos valdymas: „ViewPresenters“ tvarko naršymą tarp rodinių. Jie nustato, kaip reikėtų pateikti vaizdą, ar jis turėtų būti rodomas kaip viso ekrano veikla, fragmentas ar net modalinis dialogas. Tai ypač svarbu hibridinėse programose, kai naudojamos ir xamarin.formos, ir vietiniai vaizdai [1] [3].

2. Tinkinimas: „MVVMCross“ leidžia kūrėjams kurti pasirinktinius „ViewPresenters“. Šis pritaikymas yra būtinas integruojant skirtingas UI sistemas, tokias kaip „Xamarin.Forms“, su natūraliais „Android“ ar „iOS“ komponentais. Pavyzdžiui, „Xamarin.Forms“ programoje „Android“ gali tekti sukurti pasirinktinį pranešėją, pavyzdžiui, „MvxFormsDroidPagePresenter“, kad būtų galima valdyti tiek formas, tiek vietinius „Android“ rodinius [1].

3. Gyvenimo ciklo valdymas: „ViewPresenters“ turi žinoti apie jų valdomų veiklų gyvavimo ciklą ar jų nuomones. Tai pasiekiama per sąsajas, tokias kaip „IMVXandroidCurrentToPactivity“ „Android“, kuris padeda sekti dabartinę aukščiausią veiklą ir valdyti jo gyvenimo ciklo įvykius [1].

4. Pristatymo atributai: MVVMCross naudoja pateikimo atributus, kad tinkintų, kaip pateikiami rodiniai. Pvz., „MVXFragmentPresentationAttribute“ leidžia nurodyti, ar fragmentas turėtų būti laikomas veiklos viduje, ar kitas fragmentas, užtikrinantis lankstumą projektuojant vartotojo sąsają [3].

5. Išplečiamumas: „ViewPresenter“ sistema yra labai išplėstinė. Kūrėjai gali sukurti naujus pateikimo atributus išplėsdami „MVXBASEPRESENTATIONATTRIBUTE“ ir pritaikydami pateikimo logiką, supažindindami esamus pranešėjus, tokius kaip „MvxandroidViewPresenter“ arba „MVXAPPCOMPATVieViewPresenter“ [3].

įgyvendinimas

Norėdami įdiegti „Custom ViewPresenter“ MVVMCross, jums paprastai reikia:

- Nepaisykite „CreateViewPresenter“ metodo: konkrečioje platformoje nustatytoje sąrankos klasėje (pvz., „Setup.cs“ „Android“) nepaisote šio metodo, kad grąžintumėte savo pasirinktinį pranešėją.
- Užregistruokite laidos vedėją: Įsitikinkite, kad jūsų pasirinktinis pranešėjas yra užregistruotas MVVMCross programos sąrankos metu.
- Įdiekite pristatymo logiką: Apibrėžkite, kaip reikėtų pateikti peržiūras, atsižvelgiant į jūsų programos reikalavimus.

Pavyzdys Naudokite atvejį

Apsvarstykite hibridinę programą, kurioje naudojama ir „Xamarin.Forms“, ir „Native Android“ veikla. Sukurtumėte pasirinktinį laidų vedėją, pavyzdžiui, „MVXFormsDroidPagePresenter“, kad galėtumėte valdyti navigaciją tarp formų puslapių ir vietinės veiklos. Šis laidos vedėjas nukreiptų neformų skambučius į „mVxandroidviewPresenter“, užtikrinantį sklandų abiejų UI sistemų integraciją [1].

Apibendrinant galima pasakyti, kad „MVVMCross“ „ViewPresenters“ yra būtini norint valdyti „View Navigation“ ir pateikimą, siūlantys lankstumo ir pritaikymo parinktis, kurios yra labai svarbios kuriant sudėtingas įvairių platformų programas.

Citatos:
[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-android-activity-application
[2] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-sessage-for-viewmodel-toter-tell-view-wiewappea
[3] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/dotnet/maui/xaml/fundamentals/mvvm?view=net-maui-9.0
[7] https://github.com/mvvmcross/mvvmcross/blob/develop/mvvmcross/platforms/ios/presenters/mvxiosviewpresenter.cs
[8] https://stackoverflow.com/questions/11041605/why-does-mvxmodalSupportTouchviewPresenter-in-Mvvmcross-tik-Support-One-Modal-V