Udostępnij za pośrednictwem


ViewPager

ViewPager to menedżer układów, który umożliwia implementowanie nawigacji gesturalnej. Nawigacja gestyuralna umożliwia użytkownikowi przesunięcie w lewo i w prawo, aby przejść przez strony danych. W tym przewodniku wyjaśniono, jak zaimplementować nawigację gesturalną za pomocą programu ViewPager z fragmentami i bez nich. W tym artykule opisano również sposób dodawania wskaźników stron przy użyciu elementu PagerTitleStrip i PagerTabStrip.

Omówienie

Typowym scenariuszem tworzenia aplikacji jest zapewnienie użytkownikom nawigacji gesturalnej między widokami równorzędnymi. W tym podejściu użytkownik przesuwa palcem w lewo lub w prawo, aby uzyskać dostęp do stron zawartości (na przykład w kreatorze konfiguracji lub pokazie slajdów). Możesz utworzyć te widoki szybkiego przesunięcia przy użyciu widżetu dostępnego ViewPager w bibliotece obsługi systemu Android w wersji 4. Jest ViewPager to widżet układu składający się z wielu widoków podrzędnych, w których każdy widok podrzędny stanowi stronę w układzie:

Zrzuty ekranu aplikacji TreePager z przykładem przesunięcia poziomego

ViewPager Zazwyczaj jest używany w połączeniu z fragmentami, jednak istnieją pewne sytuacje, w których można chcieć użyć ViewPager bez dodatkowej Fragmentzłożoności s.

ViewPager używa wzorca adaptera, aby udostępnić go widokom do wyświetlenia. Karta używana w tym miejscu jest koncepcyjnie podobna do tej używanej przez element RecyclerView — należy podać implementację PagerAdapter w celu wygenerowania stron wyświetlanych ViewPager dla użytkownika. Strony wyświetlane według ViewPager mogą być Views lub Fragments. Gdy Viewsą wyświetlane, podklasy adaptera klasy bazowej PagerAdapter systemu Android. Jeśli Fragmentsą wyświetlane, podklasy adaptera systemu Android .FragmentPagerAdapter Biblioteka pomocy technicznej systemu Android zawiera FragmentPagerAdapter również (podklasę PagerAdapter) w celu ułatwienia szczegółów łączenia Fragmentsię z danymi.

W tym przewodniku przedstawiono obie metody:

  • W programie Viewpager with Views aplikacja TreePager jest opracowywana w celu zademonstrowania sposobu ViewPager wyświetlania widoków wykazu drzew (galerii obrazów drzew liściastych i wiecznie zielonych drzew). PagerTabStrip i PagerTitleStrip są używane do wyświetlania tytułów, które ułatwiają nawigację po stronie.

  • W programie Viewpager z fragmentami opracowano nieco bardziej złożoną aplikację FlashCardPager, aby zademonstrować sposób użycia z ViewPager Fragmentprogramem s w celu utworzenia aplikacji, która przedstawia problemy matematyczne jako karty flash i reaguje na dane wejściowe użytkownika.

Wymagania

Aby użyć ViewPager go w projekcie aplikacji, należy zainstalować pakiet Biblioteki pomocy technicznej systemu Android w wersji 4 . Aby uzyskać więcej informacji na temat instalowania pakietów NuGet, zobacz Przewodnik: dołączanie pakietu NuGet w projekcie.

Architektura

Trzy składniki są używane do implementowania nawigacji gesturalnej za pomocą ViewPagerpolecenia :

  • ViewPager
  • Adapter
  • Wskaźnik pagera

Każdy z tych składników jest podsumowywać poniżej.

ViewPager

ViewPager jest menedżerem układów View, który wyświetla pojedynczą kolekcję s. Jego zadaniem jest wykrycie gestu przesunięcia użytkownika i przejście do następnego lub poprzedniego widoku odpowiednio. Na przykład poniższy zrzut ekranu przedstawia ViewPager przejście z jednego obrazu do następnego w odpowiedzi na gest użytkownika:

Zbliżenie aplikacji TreePager wyświetlającej przejście między widokami

Adapter

ViewPagerpobiera dane z adaptera. Zadaniem karty jest utworzenie Viewwyświetlanych przez ViewPagerelement , podając je zgodnie z potrzebami. Na poniższym diagramie przedstawiono tę koncepcję — karta tworzy i wypełnia Viewobiekty i udostępnia je elementowi ViewPager. ViewPager Podczas wykrywania gestów przesunięcia użytkownika prosi adapter o podanie odpowiedniego View do wyświetlenia:

Diagram ilustrujący sposób łączenia obrazów i nazw adaptera z programem ViewPager

W tym konkretnym przykładzie każda View z nich jest tworzona na podstawie obrazu drzewa i nazwy drzewa, zanim zostanie przekazana do obiektu ViewPager.

Wskaźnik pagera

ViewPager może służyć do wyświetlania dużego zestawu danych (na przykład galeria obrazów może zawierać setki obrazów). Aby ułatwić użytkownikowi nawigowanie po dużych zestawach danych, ViewPager często towarzyszy mu wskaźnik pager, który wyświetla ciąg. Ciąg może być tytułem obrazu, podpis lub po prostu pozycją bieżącego widoku w zestawie danych.

Istnieją dwa widoki, które mogą generować te informacje nawigacyjne: PagerTabStrip a PagerTitleStrip. każdy wyświetla ciąg w górnej części ViewPagerelementu , a każdy ściąga dane z ViewPagerkarty , aby zawsze był zsynchronizowany z aktualnie wyświetlanym Viewelementem . Różnica między nimi polega na tym, że PagerTabStrip zawiera wizualny wskaźnik dla ciągu "current", ale PagerTitleStrip nie (jak pokazano na tych zrzutach ekranu):

Zrzuty ekranu aplikacji TreePager z elementami PagerTitleStrip i PagerTabStrip

W tym przewodniku pokazano, jak za pomocą funkcji immplement ViewPager, adaptera i składników aplikacji wskaźnika zintegrować je w celu obsługi nawigacji gesturalnej.