Jak používat fragmenty v aplikacích pro Android pro výkonné a dynamické uživatelské rozhraní

Autor: John Stephens
Datum Vytvoření: 28 Leden 2021
Datum Aktualizace: 19 Smět 2024
Anonim
Jak používat fragmenty v aplikacích pro Android pro výkonné a dynamické uživatelské rozhraní - Aplikace
Jak používat fragmenty v aplikacích pro Android pro výkonné a dynamické uživatelské rozhraní - Aplikace

Obsah


Poznámka: Tento článek předpokládá, že jste obeznámeni se základy vývoje Androidu a Java. Již byste měli mít možnost vytvářet základní rozvržení a používat pohledy, při kliknutí a findViewByID. Pokud tyto pojmy pochopíte, jste připraveni se naučit používat fragmenty!

Fragmenty jsou výkonnou funkcí dobrého uživatelského rozhraní Android, které vám umožňují přistupovat k návrhu aplikace modulárním způsobem. Toto jsou odlišné pohledy, které mohou obsahovat celá rozvržení a které přicházejí s vlastním doprovodným kódem Java. Tímto způsobem rozdělíte své uživatelské rozhraní, můžete vytvořit logičtější rozvržení, která budou uživatelům snáze srozumitelná. Můžete jim poskytnout další informace a ovládací prvky, aniž by museli opustit činnost.


Viz také: Bezproblémové fragmenty: Používání komponenty navigační architektury systému Android

Fragmenty vám poskytují mnohem více možností v návrhu aplikace a mohou výrazně zlepšit uživatelský dojem

A co víc, je to, že fragmenty fungují jako třídy a objekty, takže můžete mít více příklady stejného fragmentu. To znamená, že můžete znovu použít stejné rozvržení znovu a znovu, aniž byste museli přepisovat kód, nebo dokonce zobrazit dvě různé verze vedle sebe.

Stručně řečeno, zatímco toto je zatím další co se naučit, pokud jde o zdánlivě nekonečné seznamy úkolů, které se týkají aplikací pro Android, je to něco, co vám může poskytnout mnohem více možností ve vašem návrhu aplikace a podstatně zlepšit uživatelský dojem - což z něj činí více než jen čas strávený seznamováním .


Jak vytvořit svůj první fragment Android

Co bychom tedy mohli udělat s fragmenty, které by jinak nedaly smysl?

Možná máme seznam souborů - možná je to galerie obrázků - a chceme ukázat popis a dát uživateli možnost smazat nebo sdílet. Taková věc. Mohli bychom je poslat pokaždé na novou stránku „Popis“ pomocí samostatné aktivity, ale pokud použijete fragmenty, můžeme je nechat na jedné stránce, která bude méně otřesná.

Otevřete Android Studio a vytvořte seznam náhodných obrázků v systému Windows activity_main.xml. Používám obrázky Dragon Ball Super protože jsem blbeček a to je to, co jsem si ležel na svém PC ...

Nyní vytvoříme náš první fragment.

K tomu se chystáte zamířit Soubor> Nový> Fragment. Když to provedete, musí být MainActivity.java vybrán vlevo a prozatím si vyberete „prázdný“ fragment. Poté si budete moci vybrat jméno pro nový výtvor, kterému říkáme „Popis“. Zrušte zaškrtnutí dvou políček pod nimi - právě teď to nepotřebujeme.

Jakmile to provedete, zjistíte, že nyní máte nejen nový soubor java s názvem Description.java, ale také nový soubor rozložení nazvaný fragment_description.xml - stejně jako byste vytvořili novou třídu! To znamená, že kód, který jde s vaším novým fragmentem, umístíte do svého samostatného souboru java.

Přidání rozvržení, pohledů a kódu

Dobrou zprávou je, že při použití fragmentů je pro nás velmi snadné přidávat pohledy a rozvržení. Uděláme to tak, jak bychom normálně upravovali fragment_timer.xml.

Pojďme znovu použít lineární rozvržení a tentokrát přidáme některé ovládací prvky a popisný text. Teď si tady můžeš nalepit cokoli.

Takže teď je další otázka: jak to ve skutečnosti projeví ve vaší aplikaci?

To lze provést přidáním fragmentu do aktivity, stejně jako u jiných pohledů. Takže, hlavu na activity_main.xml a přidat pohled tak, že zabírá část obrazovky - možná dole.

Pokud to chcete udělat tak, jak jsem to udělal, použil jsem vertikální lineární rozložení a dal všem obrázkům váhu 1 a fragment váhu 2.

Všimnete si, že v náhledu se nezobrazí skutečný fragment, pouze zástupný symbol. Stejně tak si všimněte, že jsem musel do XML vložit název fragmentu, aby Android věděl, kde jej najít. Potřebujete také ID pro každý fragment.

Kód

Jak již bylo řečeno, kód, který potřebujeme použít fragmenty, půjde do svého vlastního souboru java. V tomto případě se jedná o soubor Description.java.

Pokud tuto stránku zkontrolujete, uvidíte, že existuje konstruktor (stejně jako v jakékoli třídě, která vytváří objekt) a metoda s názvem onCreateView. Tato metoda je místem, kde se xml používá k nafouknutí tohoto pohledu, a je také ekvivalentem vašeho obvyklého onCreate metoda ve standardní činnosti.

Z velké části můžete dělat věci tak, jak byste za normálních okolností měli. findViewByID funguje a můžete použít ke změně textu atd., ale budete muset získat odkaz trochu jinak. Změňte řádek, který zní:

návrat inflater.inflate (R.layout.fragment_description, kontejner, nepravda);

Na:

Zobrazit v = inflater.inflate (R.layout.fragment_description, kontejner, nepravda);

A pak použijte:

v.findViewByID.

Nyní máte přístup ke svým názorům, jak byste normálně:

public View onCreateView (LayoutInflater inflater, ViewGroup kontejner, Bundle savedInstanceState) {View v = inflater.inflate (R.layout.fragment_description, kontejner, nepravda); Tlačítko okButton = v.findViewById (R.id.OK) ;;; Tlačítko shareButton = v.findViewById (R.id.Podíl); okButton.setOnClickListener (nové zobrazení.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", Toast.LENGTH_LONG ).show(); }}); shareButton.setOnClickListener (nový View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Sharing ...", Toast.LENGTH_LONG ).show(); }}); návrat v; }}

Používejte fragmenty s více instancemi

Při použití fragmentů můžete vidět, jak je mnohem snazší vytvořit zjednodušené uživatelské rozhraní a kód. Namísto použití rozvržení v rámci rozvržení a pak žonglování spoustou kliknutí vše v jednom souboru Java. A co víc, tento „modulární“ přístup vám umožní použít tento pohled napříč činnostmi a dokonce i v nabídkách a jiných dynamických umístěních.

Ale opravdu skvělá část je skutečnost, že můžete mít několik instancí stejného fragmentu, které všechny existují současně.

To je jednoduché: stačí přidat více než jedno zobrazení a nafouknout přesně stejný kód.

Doufejme, že nyní můžete začít vidět část síly používání fragmentů: představte si, že máte obraz Recycler View (rolovací seznam) obrázků, každý s podrobnostmi a ovládacími prvky těsně pod nimi. Nebylo by nutné pokaždé vytvářet zcela nové rozvržení a zobrazení byste mohli skrýt, dokud uživatel neklikne na obrázek!

A co víc, můžete také generovat nové fragmenty programově. Vše, co potřebujete, je někde, kam se fragment dostane ve vašem rozvržení - například rozvržení rámečku (kterému zavolám) fragmentTarget) a poté můžete provést následující:

Fragment addedFragment = new Description (); FragmentTransaction transaction = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, addedFragment); transaction.addToBackStack (null); transaction.commit ();

Nezapomeňte importovat potřebné třídy - budete vyzváni, kdykoli se pokusíte použít fragmenty v kódu. Ujistěte se, že jste vybrali nejlepší možnost, která říká „v4“.

Schopnost programově přidávat fragmenty je důležitá, protože to znamená, že bychom mohli vygenerovat dynamický seznam obrázků (které jsme stáhli, které jsou umístěny v určité složce atd.), A pak okamžitě zobrazit podrobnosti.

V tomto novém příkladu byl tedy druhý fragment programově přidán.

Nakonec se může stát, že budete chtít změnit vzhled svých fragmentů v závislosti na jejich umístění. Dobrou zprávou je, že to můžete snadno udělat předáním ID jako svazku při vytváření fragmentu a poté extrahováním této hodnoty na druhém konci.

V MainActivity.java použijte:

Bundle bundle = new Bundle (); bundle.putInt ("ID", 1); addedFragment.setArguments (bundle);

A pak do souboru Description.java přidejte:

int eyeD = 0; Bundle bundle = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } spínač (eyeD) {případ 1:…

Pak můžete - například - přimět svou aplikaci, aby zobrazovala různé poznámky ke každému obrázku.

Závěrečné komentáře

Tak používáte fragmenty. Doufejme, že jste pochopili základy a tento příspěvek vám dal dost pochopení, že můžete jít dopředu a přijít na zbytek. Ještě důležitější je, že doufám, že vám ukázala některá možná využití fragmentů a potenciál, který nabízejí pro chytřejší design aplikací.

Pokud chcete vidět další příklad fragmentů v akci, podívejte se na můj nedávný příspěvek o vytvoření vlastního spouštěče!

Vývoj Android:

  • Jak vytvořit aplikaci VR pro Android za pouhých 7 minut
  • Vytvořte si vlastní akci pro Asistenta Google
  • Root Android: Vše, co potřebujete vědět!
  • Anatomie aplikace: Úvod do životního cyklu aktivity
  • Android Jetpack: Co znamenají poslední oznámení pro knihovnu podpory Androidu?

Bez ohledu na naše kolektivní myšlenky na to, zářez nebyl navržen výlovně, aby ná nenáviděl martphony. Výrobci martphonů e již řadu let pokoušejí optimalizovat proto...

Viděli jme tapety, které obahují děrovaný diplej Galaxy 10 mnoha půobivými způoby. Ale telefony drážkami Waterdrop i také zíkají láku díky aplikaci N...

Nezapomeňte Se Podívat