Udostępnij za pośrednictwem


Fragmenty

System Android 3.0 wprowadził fragmenty, pokazując, jak obsługiwać bardziej elastyczne projekty dla wielu różnych rozmiarów ekranu znalezionych na telefonach i tabletach. W tym artykule opisano sposób używania fragmentów do tworzenia aplikacji platformy Xamarin.Android, a także sposobu obsługi fragmentów na urządzeniach z systemem w wersji wcześniejszej niż Android 3.0 (poziom 11 interfejsu API).

Omówienie fragmentów

Większe rozmiary ekranu znajdujące się na większości tabletów dodały dodatkową warstwę złożoności programowania dla systemu Android — układ zaprojektowany dla małego ekranu niekoniecznie działa również w przypadku większych ekranów i na odwrót. Aby zmniejszyć liczbę komplikacji, które wprowadzono, system Android 3.0 dodał dwie nowe funkcje, fragmenty i pakiety pomocy technicznej.

Fragmenty można traktować jako moduły interfejsu użytkownika. Umożliwiają deweloperowi podzielenie interfejsu użytkownika na izolowane części wielokrotnego użytku, które mogą być uruchamiane w osobnych działaniach. W czasie wykonywania same działania zdecydują, które fragmenty mają być używane.

Pakiety pomocy technicznej były pierwotnie nazywane bibliotekami zgodności i zezwalały na korzystanie z fragmentów na urządzeniach z wersjami systemu Android wcześniejszych niż Android 3.0 (poziom API 11).

Na przykład na poniższym obrazie pokazano, jak pojedyncza aplikacja używa fragmentów w różnych czynnikach form urządzenia.

Diagram of how fragments are used in Tablets and Handsets

Fragment A zawiera listę, a fragment B zawiera szczegóły elementu wybranego na tej liście. Gdy aplikacja jest uruchamiana na tablecie, może wyświetlać oba fragmenty w tym samym działaniu. Gdy ta sama aplikacja jest uruchamiana na zestawie praktycznym (z mniejszym rozmiarem ekranu), fragmenty są hostowane w dwóch oddzielnych działaniach. Fragment A i Fragment B są takie same w obu czynnikach formularzy, ale działania, które je hostują, są różne.

Aby ułatwić koordynowanie działania i zarządzanie wszystkimi tymi fragmentami, system Android wprowadził nową klasę o nazwie FragmentManager. Każde działanie ma własne wystąpienie FragmentManager elementu do dodawania, usuwania i znajdowania hostowanych fragmentów. Na poniższym diagramie przedstawiono relację między fragmentami i działaniami:

Diagram illustrating relationships between Activity, Fragment Manager, and Fragments

W niektórych przypadkach fragmenty mogą być traktowane jako kontrolki złożone lub jako mini-działania. Łączą one fragmenty interfejsu użytkownika w moduły wielokrotnego użytku, które mogą być następnie używane niezależnie przez deweloperów w działaniach. Fragment ma hierarchię widoku — podobnie jak działanie — ale w przeciwieństwie do działania, może być współużytkowany na różnych ekranach. Widoki różnią się od fragmentów w tym cyklu życia fragmentów; widoki nie.

Działanie jest hostem co najmniej jednego fragmentu, ale nie jest bezpośrednio świadomy samych fragmentów. Podobnie fragmenty nie są bezpośrednio świadome innych fragmentów w działaniu hostingu. Jednak fragmenty i działania są świadome FragmentManager w ich działaniu. Za pomocą FragmentManagerelementu możliwe jest, aby działanie lub fragment uzyskać odwołanie do określonego wystąpienia fragmentu, a następnie wywołać metody w tym wystąpieniu. W ten sposób działanie lub fragmenty mogą komunikować się z innymi fragmentami i wchodzić z nimi w interakcje.

Ten przewodnik zawiera kompleksowy opis sposobu używania fragmentów, w tym:

  • Tworzenie fragmentów — jak utworzyć podstawowe metody fragmentu i klucza, które należy zaimplementować.
  • Zarządzanie fragmentami i transakcje — jak manipulować fragmentami w czasie wykonywania.
  • Pakiet pomocy technicznej systemu Android — jak używać bibliotek, które umożliwiają używanie fragmentów w starszych wersjach systemu Android.

Wymagania

Fragmenty są dostępne w zestawie SDK systemu Android, począwszy od poziomu interfejsu API 11 (Android 3.0), jak pokazano na poniższym zrzucie ekranu:

Selecting the API level in the Android SDK Manager

Fragmenty są dostępne w środowisku Xamarin.Android 4.0 lub nowszym. Aby można było używać fragmentów, aplikacja platformy Xamarin.Android musi być docelowa co najmniej na poziomie 11 interfejsu API (Android 3.0) lub nowszym. Struktura docelowa może być ustawiona we właściwościach projektu, jak pokazano poniżej:

Setting the Target Framework API level in the Project Options

Można używać fragmentów w starszych wersjach systemu Android przy użyciu pakietu pomocy technicznej systemu Android i platformy Xamarin.Android 4.2 lub nowszej. Jak to zrobić, bardziej szczegółowo opisano w dokumentach tej sekcji.