Ako používať fragmenty v aplikáciách pre Android pre výkonné a dynamické používateľské rozhranie

Autor: John Stephens
Dátum Stvorenia: 28 Január 2021
Dátum Aktualizácie: 19 Smieť 2024
Anonim
Ako používať fragmenty v aplikáciách pre Android pre výkonné a dynamické používateľské rozhranie - Aplikácie
Ako používať fragmenty v aplikáciách pre Android pre výkonné a dynamické používateľské rozhranie - Aplikácie

Obsah


Poznámka: Tento článok predpokladá, že ste oboznámení so základmi vývoja systému Android a Java. Mali by ste už byť schopní vytvárať základné rozloženia a používať zobrazenia, po kliknutí a findViewByID. Ak tieto pojmy pochopíte, ste pripravení naučiť sa používať fragmenty!

Fragmenty sú výkonnou funkciou dobrého používateľského rozhrania Android, ktoré vám umožňujú pristupovať k návrhu aplikácie modulárnym spôsobom. Toto sú odlišné pohľady, ktoré môžu obsahovať celé rozloženia a ktoré prichádzajú s vlastným sprievodným kódom Java. Tým, že zrušíte svoje používateľské rozhranie týmto spôsobom, môžete vytvoriť logickejšie rozloženia, ktoré budú pre vašich používateľov ľahšie pochopiteľné. Môžete im poskytnúť ďalšie informácie a ovládacie prvky bez toho, aby museli opustiť činnosť.


Pozrite tiež: Fragmenty bez problémov: Používanie navigačnej architektúry systému Android

Fragmenty vám poskytujú oveľa viac možností v dizajne vašej aplikácie a môžu výrazne zlepšiť dojem používateľa

A čo viac, je to, že fragmenty fungujú ako triedy a objekty, takže ich môžete mať viac inštancie rovnakého fragmentu. To znamená, že rovnaké rozloženie môžete znova a znova použiť bez toho, aby ste museli prepisovať kód, alebo dokonca zobrazovať vedľa seba dve rôzne verzie.

Stručne povedané, zatiaľ čo to ešte je ďalší čo sa má naučiť, pokiaľ ide o zdanlivo nekonečné zoznamy úloh, ktoré sa týkajú aplikácií pre Android, je to niečo, čo vám môže poskytnúť oveľa viac možností v dizajne vašej aplikácie a podstatne zlepšiť používateľské prostredie - čo z neho robí viac ako len čas strávený zoznámením sa. ,


Ako zostaviť prvý fragment systému Android

Čo by sme mohli urobiť s fragmentmi, ktoré by inak nedali zmysel?

Možno máme zoznam súborov - možno toto je galéria obrázkov - a my chceme ukázať popis a dať užívateľovi možnosť vymazať alebo zdieľať. Taká vec. Mohli by sme ich odoslať na novú stránku „Popis“ zakaždým pomocou samostatnej aktivity, ale ak použijete fragmenty, môžeme ich nechať na jednej stránke, ktorá bude menej nervózna.

Otvorte Android Studio a vytvorte zoznam náhodných obrázkov v systéme Windows activity_main.xml, Používam obrázky Dragon Ball Super pretože som blbecek a to je to, čo som ležal na svojom počítači ...

Teraz vytvoríme prvý fragment.

Aby ste to dosiahli, idete na Súbor> Nový> Fragment. Keď to urobíte, musí byť MainActivity.java vybratý vľavo a zatiaľ vyberiete „prázdny“ fragment. Potom si budete môcť vybrať meno pre nový výtvor, ktorý budeme nazývať „Popis“. Rozbaľte dve škatule pod nimi - práve teraz to nepotrebujeme.

Keď to urobíte, zistíte, že teraz máte nielen nový súbor java s názvom Description.java, ale aj nový súbor s rozložením s názvom fragment_description.xml - akoby ste vytvorili novú triedu! To znamená, že kód, ktorý sa používa spolu s novým fragmentom, umiestnite do samostatného súboru java.

Pridávanie rozložení, zobrazení a kódu

Dobrou správou je, že pri použití fragmentov je pre nás veľmi jednoduché pridať zobrazenia a rozloženie. Urobíme to presne tak, ako by sme normálne upravovali fragment_timer.xml.

Použime znova lineárne rozloženie a teraz pridajte niektoré ovládacie prvky a popisný text. Teraz tu môžete nalepiť čokoľvek.

Takže teraz je ďalšia otázka: ako to, aby sa to skutočne prejavilo vo vašej aplikácii?

Môžete to urobiť tak, že do aktivity pridáte fragment, rovnako ako akékoľvek iné zobrazenie. Zamierte na activity_main.xml a pridajte zobrazenie tak, aby zaberalo časť obrazovky - možno dole.

Ak to chcete urobiť tak, ako som to urobil, použil som vertikálne lineárne rozloženie a dal všetkým obrázkom hmotnosť 1 a fragmentu váhu 2.

Všimnite si, že v ukážke sa nezobrazuje skutočný fragment, iba zástupný symbol. Podobne si všimnite, že som musel do súboru XML zahrnúť názov fragmentu, aby Android vedel, kde ho nájsť. Potrebujete tiež ID pre každý fragment.

Kód

Ako už bolo uvedené, kód, ktorý potrebujeme použiť fragmenty, pôjde do vlastného súboru java. V takom prípade je to súbor Description.java.

Ak túto stránku odhlásite, uvidíte, že existuje konštruktor (rovnako ako v každej triede, ktorá vytvára objekt) a metóda s názvom onCreateView, Táto metóda je miestom, kde sa xml používa na nafúknutie tohto zobrazenia a je tiež ekvivalentom vášho zvyčajného OnCreate metóda v štandardnej činnosti.

Z väčšej časti môžete robiť veci, ako by ste tu mali. findViewByID funguje a môžete to použiť na zmenu textu atď., ale referenciu budete musieť získať trochu inak. Zmeňte riadok, ktorý znie:

návrat inflater.inflate (R.layout.fragment_description, kontajner, nepravdivé);

Ak chcete:

Zobraziť v = inflater.inflate (R.layout.fragment_description, kontajner, nepravdivé);

A potom použite:

v.findViewByID.

Teraz môžete pristupovať k svojim názorom ako obvykle:

verejné zobrazenie onCreateView (inflater LayoutInflater, kontajner ViewGroup, Bundle savedInstanceState) {View v = inflater.inflate (R.layout.fragment_description, kontajner, nepravdivé); Tlačidlo okButton = v.findViewById (R.id.OK) ;; Tlačidlo shareButton = v.findViewById (R.id.zdieľam); okButton.setOnClickListener (nové zobrazenie.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), „OK!“, Toast.LENGTH_LONG ).šou(); }}); shareButton.setOnClickListener (nové zobrazenie.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Sharing ...", Toast.LENGTH_LONG ).šou(); }}); návrat v; }}

Použite fragmenty s viacnásobným výskytom

Môžete vidieť, ako je oveľa jednoduchšie vytvoriť zjednodušené používateľské rozhranie a kód, keď používame fragmenty. Namiesto použitia rozloženia v rámci rozloženia a následného žonglovania mnohých kliknutí v rámci jedného súboru Java. A čo viac, tento „modulárny“ prístup vám umožní použiť tento pohľad na aktivity a dokonca aj v ponukách a na iných dynamických miestach.

Skutočne skvelá časť je však skutočnosť, že môžete mať viacero inštancií toho istého fragmentu, ktoré existujú všetky súčasne.

Je to jednoduché: stačí pridať viac ako jedno zobrazenie a nafúknuť presne ten istý kód.

Dúfajme, že teraz môžete začať vidieť niektoré z možností použitia fragmentov: predstavte si, že máte obraz Recycler View (posúvací zoznam) obrázkov, každý s podrobnosťami a ovládacími prvkami hneď pod nimi. Nie je potrebné zakaždým vytvárať úplne nové rozloženie a zobrazenia by ste mohli skryť, až kým užívateľ neklikne na obrázok!

A čo viac, môžete tiež generovať nové fragmenty programovo. Všetko, čo potrebujete, je niekde na to, aby sa fragment dostal do vášho rozloženia - napríklad rámcové rozloženie (ktoré zavolám fragmentTarget) a potom môžete urobiť nasledujúce kroky:

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

Nezabudnite importovať potrebné triedy - zobrazí sa výzva vždy, keď sa pokúsite použiť fragmenty v kóde. Len nezabudnite vybrať najlepšiu možnosť, ktorá hovorí „v4“.

Schopnosť programovo pridávať fragmenty je dôležitá, pretože to znamená, že by sme mohli vygenerovať dynamický zoznam obrázkov (ktoré sme stiahli, ktoré sú umiestnené v konkrétnom priečinku atď.) A potom by sme mali okamžite zobraziť podrobnosti.

V tomto novom príklade bol teda druhý fragment programovo pridaný.

Nakoniec sa môže stať, že budete chcieť zmeniť vzhľad svojich fragmentov v závislosti od ich umiestnenia. Dobrou správou je, že to môžete ľahko urobiť tak, že pri vytváraní fragmentu odovzdáte ID ako zväzok a potom túto hodnotu extrahujete na opačnom konci.

V súbore MainActivity.java použite:

Balík balíkov = nový balík (); bundle.putInt ("ID", 1); addedFragment.setArguments (zväzok);

A potom do súboru Description.java pridajte:

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

Potom by ste mohli napríklad požiadať svoju aplikáciu, aby pre každý obrázok zobrazovala rôzne poznámky.

Záverečné pripomienky

Takto používate fragmenty. Dúfajme, že ste pochopili základy a tento príspevok vám dal dosť pochopenia, že môžete ísť ďalej a zistiť ostatné. A čo je dôležitejšie, dúfam, že vám ukázal niektoré z možných použití fragmentov a potenciál, ktorý ponúkajú pre inteligentnejší návrh aplikácií.

Ak chcete vidieť ďalší príklad fragmentov v akcii, nezabudnite sa pozrieť na môj nedávny príspevok týkajúci sa vytvorenia vlastného spúšťača!

Vývoj Android:

  • Ako vytvoriť aplikáciu VR pre Android za 7 minút
  • Zostavte si svoju vlastnú akciu pre Asistenta Google
  • Root Android: Všetko, čo potrebujete vedieť!
  • Anatómia aplikácie: Úvod do životného cyklu aktivity
  • Android Jetpack: Čo znamenajú posledné oznámenia pre knižnicu podpory pre Android?

Máte úžaný nápad na zabijaciu webovú tránku alebo aplikáciu, ako je Uber pre domáce zvieratá, alebo niečo rovnako neočakávané, ale dúfajme, ...

V revidovaných záadách povolení hovorov a M práv poločnoti Google a môže tať, že bezpečnotná aplikácia exuálnych pracovníkov tratí kľúčov...

Nové Publikácie