Sdílet prostřednictvím


Fragmenty

Android 3.0 zavedl fragmenty, které ukazují, jak podporovat flexibilnější návrhy pro mnoho různých velikostí obrazovky nalezených na telefonech a tabletech. Tento článek se zabývá tím, jak používat fragmenty k vývoji aplikací Xamarin.Android a také jak podporovat fragmenty na zařízeních s před Androidem 3.0 (api level 11).

Přehled fragmentů

Větší velikosti obrazovky nalezené na většině tabletů přidaly další vrstvu složitosti vývoje pro Android – rozložení navržené pro malou obrazovku nemusí nutně fungovat stejně jako u větších obrazovek a naopak. Aby se snížil počet komplikací, které se zavedly, přidal Android 3.0 dvě nové funkce, fragmenty a balíčky podpory.

Fragmenty lze považovat za moduly uživatelského rozhraní. Vývojáři umožňují rozdělit uživatelské rozhraní na izolované a opakovaně použitelné části, které je možné spouštět v samostatných aktivitách. V době běhu se samotné aktivity rozhodnou, které fragmenty se mají použít.

Balíčky podpory se původně označovaly jako knihovny kompatibility a umožňovaly použití fragmentů na zařízeních s verzemi Androidu před Androidem 3.0 (rozhraní API úrovně 11).

Například následující obrázek ukazuje, jak jedna aplikace používá fragmenty napříč různými faktory formulářů zařízení.

Diagram of how fragments are used in Tablets and Handsets

Fragment A obsahuje seznam, zatímco Fragment B obsahuje podrobnosti o položce vybrané v tomto seznamu. Když je aplikace spuštěná na tabletu, může zobrazit oba fragmenty ve stejné aktivitě. Pokud je stejná aplikace spuštěná na sluchátku (s menší velikostí obrazovky), jsou fragmenty hostovány ve dvou samostatných aktivitách. Fragment A a Fragment B jsou na obou formách stejné, ale aktivity, které je hostují, jsou odlišné.

Pro usnadnění koordinace a správy všech těchto fragmentů zavedl Android novou třídu s názvem FragmentManager. Každá aktivita má vlastní instanci FragmentManager pro přidávání, odstraňování a hledání hostovaných fragmentů. Následující diagram znázorňuje vztah mezi fragmenty a aktivitami:

Diagram illustrating relationships between Activity, Fragment Manager, and Fragments

V některých ohledech lze fragmenty považovat za složené ovládací prvky nebo jako mini-Aktivity. Spojí části uživatelského rozhraní do opakovaně použitelných modulů, které pak můžou používat nezávisle vývojáři v aktivitách. Fragment má hierarchii zobrazení – stejně jako aktivita – ale na rozdíl od aktivity se dá sdílet na různých obrazovkách. Zobrazení se liší od fragmentů v tom, že fragmenty mají svůj vlastní životní cyklus; zobrazení ne.

Zatímco aktivita je hostitelem jednoho nebo více fragmentů, není přímo vědom samotných fragmentů. Stejně tak fragmenty nejsou přímo vědomy jiných fragmentů v aktivitě hostování. Fragmenty a aktivity však o FragmentManager své aktivitě vědí. Pomocí této možnosti FragmentManagerje možné získat aktivitu nebo fragment odkaz na konkrétní instanci fragmentu a potom volat metody pro danou instanci. Tímto způsobem může aktivita nebo fragmenty komunikovat a pracovat s ostatními fragmenty.

Tato příručka obsahuje komplexní informace o tom, jak používat fragmenty, včetně těchto:

  • Vytváření fragmentů – jak vytvořit základní fragmenty a klíčové metody, které musí být implementovány.
  • Správa fragmentů a transakce – Jak manipulovat s fragmenty za běhu
  • Balíček podpory pro Android – Jak používat knihovny, které umožňují použití fragmentů ve starších verzích Androidu.

Požadavky

Fragmenty jsou dostupné v sadě Android SDK počínaje rozhraním API úrovně 11 (Android 3.0), jak je znázorněno na následujícím snímku obrazovky:

Selecting the API level in the Android SDK Manager

Fragmenty jsou k dispozici v Xamarin.Android 4.0 a vyšší. Aby bylo možné používat fragmenty, musí aplikace Xamarin.Android cílit alespoň na úroveň rozhraní API 11 (Android 3.0) nebo vyšší. Cílová architektura může být nastavena ve vlastnostech projektu, jak je znázorněno níže:

Setting the Target Framework API level in the Project Options

Fragmenty je možné použít ve starších verzích Androidu pomocí balíčku podpory Pro Android a Xamarin.Android 4.2 nebo vyšší. Jak to udělat, je podrobněji popsán v dokumentech této části.