„MVVMCross“ begalinis slinkties papildinys yra sukurtas taip, kad palengvintų papildomą sąrašų slinkimą, leidžiančią vartotojams nuolat slinkti per turinį be aiškaus puslapio. Čia yra išsami apžvalga, kaip tai veikia:
„Infinite Scroll“ apžvalga MVVMCross
Begalinis slinktis yra technika, naudojama turiniui įkelti dinamiškai, nes vartotojas slineka žemyn sąrašą. Šis metodas pašalina rankinio naršymo tarp puslapių poreikį, sukuriant sklandesnę ir patrauklią vartotojo patirtį. „MVVMCross“ šioje funkcijoje ši funkcija pasiekiama naudojant papildinį, kuris palaiko laipsnišką slinkimą, skirtą „Paged“ duomenų šaltiniams.
pagrindiniai komponentai
1. Papildinio architektūra: „MVVMCross“ papildiniai yra sukurti taip, kad užtikrintų vietinių funkcijų abstrakcijas, todėl lengva įgyvendinti įvairių platformų funkcijas. Begalinis slinkties papildinys seka šią architektūrą, leidžiančią kūrėjams lengvai integruoti begalinį slinkimą į savo programas.
2. „ViewModel“ ir duomenų įrišimas: „MvVMCross“ naudoja modelį MVVM („Model-View-ViewModel“), kuris apima duomenų apie „ViewModel“ įrišimo į vaizdą įrišimo įrišimą. Begalinis slinkties papildinys panaudoja šį modelį, kad būtų galima valdyti duomenų įkėlimą ir rodymą.
3. Papildomas duomenų įkėlimas: papildinys yra atsakingas už duomenų įkėlimą palaipsniui kaip vartotojo slinkimas. Paprastai tai pasiekiama stebint slinkties padėtį ir suaktyvinant duomenis, kai vartotojas kreipiasi į sąrašo apačią.
Įgyvendinimo veiksmai
Norėdami įdiegti begalinį slinkties papildinį „MVVMCross“, atlikite šiuos veiksmus:
- Įdiekite papildinį: Pirmiausia turite įdiegti begalinį slinkties papildinį į savo „MVVMCross“ projektą. Tai apima tinkamo „NuGet“ paketo pridėjimą prie jūsų pagrindinių ir platformos specifinių projektų.
- Konfigūruokite papildinį: po diegimo sukonfigūruokite papildinį veikti su jūsų duomenų šaltiniu. Tai gali apimti įrišimų nustatymą jūsų „ViewModel“ ir nurodyti, kaip duomenys turėtų būti gauti ir pridėti į sąrašą.
- Įdiekite slinkties aptikimą: papildinys turi aptikti, kai vartotojas slinko į sąrašo apačią. Paprastai tai atliekama stebint slinkties padėtį ir palyginant ją su bendtu turinio aukščiu.
- Įkelkite daugiau duomenų: Kai bus pasiektas sąrašo apačioje, papildinys suaktyvina papildomų duomenų įkėlimą. Tada šie duomenys pridedami į sąrašą, leidžiant vartotojui sklandžiai tęsti slinkimą.
Privalumai ir svarstymai
-Kryžminio platformos suderinamumas: „MVVMCross Infinite Scroll“ papildinys palaiko „Android“, „iOS“ ir „UWP“, todėl jis tinka kelti įvairių platformų kūrimą.
- Paprastas naudojimas: papildinys supaprastina begalinio slinkimo diegimą, tvarkant duomenų įkėlimo ir slinkties aptikimo sudėtingumą.
- Tinkinimas: Nors papildinys pateikia pagrindinį diegimą, kūrėjai gali pritaikyti jį taip, kad atitiktų specifinius reikalavimus, pavyzdžiui, pakeisti daugiau duomenų įkėlimo ribą arba integruoti su skirtingais duomenų šaltiniais.
Vis dėlto svarbu atsižvelgti į galimus trūkumus, tokius kaip padidėjęs duomenų gavimo tvarkymo sudėtingumas ir galimas poveikis našumui, jei ne efektyviai įgyvendinami. Be to, „Infinite Scrolling“ gali pateikti tinkamai tvarkomus prieinamumo iššūkius, pavyzdžiui, sunkumus, susijusius su ekrano skaitytuvais ar klaviatūros navigacija [9].
Citatos:[1] https://doumer.me/infinite-scroll-with-the-xamarin-forms-collection-view/
[2] https://infinite-scroll.com
[3] https://datatables.net/forums/discussion/50730/is-infinite-scroll-posible-fithout-a-recordstotal
[4] https://xmonkeys360.com/2021/01/04/xamarin-forms-infinite-scroll-listview-lazy-loading/
[5] https://stackoverflow.com/questions/18822104/mvvmcross-how-to-make-a-infinite-scroll-view ir push down-to- refresh-view
[6] https://forum.bubble.io/t/infinite-data-or-scroll-epeatting-group/300026
[7] https://www.nuget.org/packages/mvvmcross.plugin.all/
[8] https://www.nuget.org/packages/mvvmcross.binding
[9] https://theadminbar.com/accessibility-weekly/re---fink-infinite-scroll/
[10] https://www.mvvmcross.com/documentation/plugins/getting-started
[11] https://support.searchandfilter.com/forums/topic/infinite-scroll-issue/
[12] https://www.mvvmcross.com/documentation/plugins/3rd-party-plugins