Sdílet prostřednictvím


ViewPager

ViewPager je správce rozložení, který umožňuje implementovat gestrální navigaci. Gesturalní navigace umožňuje uživateli procházet stránky dat potáhnutím prstem doleva a doprava. Tato příručka vysvětluje, jak implementovat gestrální navigaci pomocí ViewPageru s fragmenty a bez fragmentů. Popisuje také, jak přidat indikátory stránek pomocí PagerTitleStrip a PagerTabStrip.

Přehled

Běžným scénářem vývoje aplikací je potřeba uživatelům poskytnout gestrální navigaci mezi zobrazeními na stejné straně. V tomto přístupu uživatel potáhne prstem doleva nebo doprava, aby získal přístup k stránkám obsahu (například v průvodci nastavením nebo v prezentaci). Tato zobrazení potáhnutí prstem můžete vytvořit pomocí widgetu dostupného ViewPager v knihovně podpory Androidu v4. Jedná se ViewPager o widget rozložení tvořený několika podřízenými zobrazeními, kde každé podřízené zobrazení představuje stránku v rozložení:

Snímky obrazovky aplikace TreePager s příkladem vodorovného potáhnutí prstem

ViewPager Obvykle se používá ve spojení s fragmenty. Existují však situace, kdy můžete chtít použít ViewPager bez větší složitostiFragment.

ViewPager používá model adaptéru, který mu poskytne zobrazení, která se mají zobrazit. Adaptér použitý zde je koncepčně podobný tomu, který používá RecyclerView – zadáte implementaci PagerAdapter pro vygenerování stránek, které ViewPager se zobrazí uživateli. Stránky zobrazené ViewPager můžou být Views nebo Fragments. Když Viewse zobrazí, podtřídy adaptéru základní třídu Androidu PagerAdapter . Pokud Fragmentjsou zobrazeny, adaptér podtřídy Android FragmentPagerAdapter. Knihovna podpory Pro Android také obsahuje FragmentPagerAdapter (podtřídu PagerAdapter) pro pomoc s podrobnostmi o připojování Fragmentk datům.

Tato příručka ukazuje oba přístupy:

  • V viewpageru se zobrazením se vyvíjí aplikace, která ukazuje, TreePager jak ViewPager zobrazit zobrazení katalogu stromu (galerie obrázků listnatých a evergreenových stromů). PagerTabStrip a PagerTitleStrip slouží k zobrazení názvů, které pomáhají s procházením stránek.

  • V Viewpageru s fragmenty je o něco složitější aplikace FlashCardPager vyvinuta tak, aby ukázala, jak používat ViewPager s Fragments k vytvoření aplikace, která představuje matematické problémy jako flash karty a reaguje na uživatelský vstup.

Požadavky

Pokud chcete použít ViewPager projekt aplikace, musíte nainstalovat balíček Knihovny podpory pro Android v4 . Další informace o instalaci balíčků NuGet naleznete v tématu Návod: Zahrnutí NuGetu do projektu.

Architektura

Pro implementaci gestrální navigace se používají tři komponenty s ViewPager:

  • ViewPager
  • Adaptér
  • Ukazatel pageru

Každá z těchto komponent je shrnutá níže.

ViewPager

ViewPager je správce rozložení, který zobrazuje kolekci Views po jednom. Jeho úkolem je zjistit gesto potáhnutí prstem uživatele a podle potřeby přejít na další nebo předchozí zobrazení. Například následující snímek obrazovky ukazuje ViewPager přechod z jednoho obrázku na další v reakci na gesto uživatele:

Zavření aplikace TreePager zobrazující přechod mezi zobrazeními

Adaptér

ViewPagernačítá data z adaptéru. Úlohou adaptéru je vytvoření zobrazených Viewadaptérem ViewPagera jejich poskytnutím podle potřeby. Následující diagram znázorňuje tento koncept – adaptér vytvoří a naplní Viewje a poskytne jim ViewPager. Vzhledem k tomu ViewPager , že rozpozná gesta potáhnutí prstem uživatele, vyzve adaptér, aby poskytl odpovídající View zobrazení:

Diagram znázorňující, jak adaptér připojuje obrázky a názvy k ViewPageru

V tomto konkrétním příkladu se každý View vytvoří ze stromového obrázku a názvu stromu před předáním do objektu ViewPager.

Ukazatel pageru

ViewPager lze použít k zobrazení velké datové sady (například galerie obrázků může obsahovat stovky obrázků). Aby uživatel přecházel mezi velkými datovými sadami, ViewPager je často doprovázen indikátorem pageru, který zobrazuje řetězec. Řetězec může být název obrázku, popis nebo jednoduše pozice aktuálního zobrazení v datové sadě.

Existují dvě zobrazení, která mohou vytvořit tyto navigační informace pro vás: PagerTabStrip a PagerTitleStrip. každý zobrazí řetězec v horní části ViewPagera každý z nich načte svá data z adaptéru ViewPagertak, aby vždy zůstal synchronizovaný Views aktuálně zobrazeným . Rozdíl mezi nimi spočívá v tom, že PagerTabStrip obsahuje vizuální indikátor "aktuálního" řetězce, zatímco PagerTitleStrip ne (jak je znázorněno na těchto snímcích obrazovky):

Snímky obrazovky aplikace TreePager s PagerTitleStrip a PagerTabStrip

Tato příručka ukazuje, jak zmplementovat ViewPager, adaptér a indikátor komponenty aplikace a integrovat je pro podporu gestural navigace.