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í:
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 View
s nebo Fragment
s. Když View
se zobrazí, podtřídy adaptéru základní třídu Androidu PagerAdapter
. Pokud Fragment
jsou 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í Fragment
k datům.
Tato příručka ukazuje oba přístupy:
V viewpageru se zobrazením se vyvíjí aplikace, která ukazuje,
TreePager
jakViewPager
zobrazit zobrazení katalogu stromu (galerie obrázků listnatých a evergreenových stromů).PagerTabStrip
aPagerTitleStrip
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
sFragment
s 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 View
s 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:
Adaptér
ViewPager
načítá data z adaptéru. Úlohou adaptéru je vytvoření zobrazených View
adaptérem ViewPager
a jejich poskytnutím podle potřeby. Následující diagram znázorňuje tento koncept – adaptér vytvoří a naplní View
je 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í:
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 ViewPager
a každý z nich načte svá data z adaptéru ViewPager
tak, aby vždy zůstal synchronizovaný View
s 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):
Tato příručka ukazuje, jak zmplementovat ViewPager
, adaptér a indikátor komponenty aplikace a integrovat je pro podporu gestural navigace.