Cum să folosiți fragmente în aplicațiile Android pentru o interfață de utilizator puternică și dinamică

Autor: John Stephens
Data Creației: 28 Ianuarie 2021
Data Actualizării: 19 Mai 2024
Anonim
Cum să folosiți fragmente în aplicațiile Android pentru o interfață de utilizator puternică și dinamică - Aplicaţii
Cum să folosiți fragmente în aplicațiile Android pentru o interfață de utilizator puternică și dinamică - Aplicaţii

Conţinut


Notă: Acest articol presupune că sunteți familiarizat cu elementele de bază ale dezvoltării Android și Java. Ar trebui să puteți deja să creați machete de bază și să folosiți vizualizări, onClick și findViewByID. Dacă înțelegeți acele concepte, sunteți gata să învățați să folosiți fragmente!

Fragmentele sunt o caracteristică puternică a unei UI Android bune care vă permit să abordați designul aplicației într-o manieră modulară. Acestea sunt vederi distincte care pot conține machete întregi și care vin cu propriul cod Java însoțitor. Prin descompunerea interfeței de utilizare în acest mod, puteți crea machete mai logice, care să le înțeleagă mai ușor utilizatorilor. Puteți să le oferiți informații și controale suplimentare fără ca aceștia să fie nevoiți să părăsească activitatea.

Vezi și: Fragmente fără obstacole: Utilizarea componentei de arhitectură de navigație pentru Android


Fragmentele vă oferă mult mai multe opțiuni în proiectarea aplicației dvs. și pot îmbunătăți substanțial experiența utilizatorului

Mai mult, este faptul că fragmentele acționează ca clase și obiecte în care poți avea mai multe instanțe din același fragment. Asta înseamnă că puteți reutiliza același aspect de mai multe ori fără a fi nevoie să rescrieți codul, sau chiar să afișați două versiuni diferite una lângă alta.

Pe scurt, în timp ce aceasta este încă un alt lucru de învățat când vine vorba de lista de aparent fără sfârșit implicată în aplicațiile Android, este ceva care vă poate oferi considerabil mai multe opțiuni în designul aplicației dvs. și poate îmbunătăți substanțial experiența utilizatorului - ceea ce face mai mult decât merită timpul petrecut familiarizarea .

Cum să construiți primul dvs. fragment de Android

Deci, ce am putea face cu fragmente care nu ar avea vreun sens?


Poate că avem o listă de fișiere - poate este vorba de o galerie de imagini - și dorim să arătăm o descriere și să oferim utilizatorului opțiunea de a șterge sau a partaja. Acel tip de lucru. Le-am putea trimite la o nouă pagină „Descriere” de fiecare dată folosind o activitate separată, dar dacă folosiți fragmente, le putem păstra pe o singură pagină, care va fi mai puțin zgârcitoare.

Deschide Android Studio și creează o listă de imagini aleatorii în activity_main.xml. Folosesc imagini cu Dragon Ball Super pentru că sunt un tocilar și asta am pățit pe computer ...

Acum vom crea primul nostru fragment.

Pentru a face acest lucru, vă veți adresa File> New> Fragment. MainActivity.java trebuie să fie selectată pe partea stângă atunci când faceți acest lucru și veți alege un fragment „blank” deocamdată. Vei putea apoi să alegi un nume pentru care ești noua creație, pe care o vom numi „Descriere”. Deschideți cele două cutii de dedesubt - nu avem nevoie de asta acum.

După ce veți face acest lucru, veți găsi acum că nu aveți doar un nou fișier java numit Descriere.java, ci și un nou fișier de layout numit fragment_description.xml - la fel ca și cum ați fi creat o nouă clasă! Aceasta înseamnă că veți plasa codul care merge cu noul fragment în propriul fișier separat Java.

Adăugarea de machete, vizualizări și cod

Vestea bună este că ne este foarte ușor să adăugăm vizualizări și un aspect atunci când folosim fragmente. Vom face acest lucru la fel cum am face în mod normal, editând fragment_timer.xml.

Să folosim din nou un aspect liniar și de data aceasta adăugăm câteva controale și text descriptiv. Puteți lipi orice aici deocamdată.

Așadar, următoarea întrebare este: cum faceți să apară de fapt acest lucru în aplicația dvs.?

Puteți face acest lucru adăugând fragmentul la activitate, la fel cum ați face orice altă vizualizare. Așadar, îndreptați-vă la activitatea_main.xml și adăugați vizualizarea, astfel încât să preia o porțiune a ecranului - probabil în partea de jos.

Dacă doriți să o faceți așa cum am făcut-o, am folosit un aspect liniar vertical și am dat tuturor imaginilor o greutate de 1, iar fragmentul o greutate de 2.

Veți observa că previzualizarea nu vă arată fragmentul real, ci doar un titular. De asemenea, observați că a trebuit să includ numele fragmentului în XML, pentru ca Android să știe unde îl poate găsi. De asemenea, aveți nevoie de un ID pentru fiecare fragment.

Codul

După cum s-a discutat, codul de care avem nevoie pentru a folosi fragmente va merge în propriul fișier java. În acest caz, acesta este fișierul Description.java.

Dacă verificați această pagină, veți vedea că există un constructor (la fel ca în orice clasă care creează un obiect) și o metodă numită onCreateView. Această metodă este aceea în care xml-ul este folosit pentru a umfla acea vizualizare și este, de asemenea, echivalentul obișnuit onCreate metoda într-o activitate standard.

În cea mai mare parte, puteți face lucrurile așa cum ați face în mod normal aici. findViewByID funcționează și puteți folosi acest lucru pentru a schimba text etc., dar va trebui să obțineți referința ușor diferit. Modificați linia care citește:

returnare inflater.inflate (R.layout).fragment_description, container, fals);

La:

Vizualizați v = inflater.inflate (R.layout).fragment_description, container, fals);

Și apoi utilizați:

v.findViewByID.

Acum puteți accesa vizualizările așa cum faceți în mod normal:

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate (R.layout).fragment_description, container, fals); Buton okButton = v.findViewById (R.id.O.K) ;; Buton shareButton = v.findViewById (R.id.Acțiune); okButton.setOnClickListener (nou View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", toast.LENGTH_LONG ).spectacol(); }}); shareButton.setOnClickListener (nou View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Sharing ...", Toast.LENGTH_LONG ).spectacol(); }}); întoarce v; }}

Folosiți fragmente cu mai multe instanțe

Puteți vedea cum este mult mai ușor să creați un UI și un cod simplificate atunci când folosim fragmente. În loc să folosești machete-în-layouturi și apoi să jonglezi multe clicuri dintr-un singur fișier Java. Mai mult, este faptul că această abordare „modulară” vă va permite să utilizați această vizualizare în cadrul activităților și chiar în meniuri și în alte locații dinamice.

Dar partea cu adevărat mișto este faptul că puteți avea mai multe instanțe din același fragment, toate existente în același timp.

Pentru a face acest lucru este simplu: adăugați doar mai multe vizualizări și umpleți cu același cod precis.

Acum, sperăm că puteți începe să vedeți o parte din puterea de a folosi fragmente: imaginați-vă că aveți o imagine Recycler (o listă derulantă) de imagini, fiecare cu detaliile și controalele chiar dedesubt. Nu va fi nevoie să creați un aspect complet nou de fiecare dată și ați putea ascunde opiniile până când utilizatorul a făcut clic pe imagine!

Mai mult, este că puteți genera, de asemenea, noi fragmente programatic. Tot ce aveți nevoie este undeva pentru ca fragmentul să fie inclus în aspectul dvs. - cum ar fi un aspect de cadru (pe care îl voi numi fragmentTarget) și apoi puteți face următoarele:

Fragment adăugatFragment = Descriere nouă (); FragmentTransaction tranzacție = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, adăugatFragment); transaction.addToBackStack (null); transaction.commit ();

Asigurați-vă că importați clasele necesare - vi se va solicita ori de câte ori încercați să utilizați fragmente din codul dvs. Nu uitați să alegeți opțiunea de sus care spune „v4”.

A fi capabil să adăugați fragmente programatic este important, deoarece înseamnă că am putea genera o listă dinamică de imagini (pe care le-am descărcat, care sunt localizate într-un anumit folder etc.) și apoi să avem detaliile care apar imediat pentru noi.

Deci, în acest nou exemplu, al doilea fragment a fost adăugat programatic.

În cele din urmă, este posibil să te simți dorind să schimbi aspectul fragmentelor tale, în funcție de locul în care sunt amplasate. Vestea bună este că puteți face acest lucru cu ușurință trecând un ID ca un pachet atunci când creați fragmentul și extragând acea valoare la celălalt capăt.

În MainActivity.java folosiți:

Pachet pachet = nou Pachet (); bundle.putInt ("ID", 1); addedFragment.setArguments (pachet);

Și apoi în Descriere.java adăugați:

int eyeD = 0; Pachet pachet = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } comutator (eyeD) {cazul 1: ...

Ați putea, de exemplu, să faceți ca aplicația dvs. să afișeze note diferite pentru fiecare imagine.

Comentarii de închidere

Așa se face că folosiți fragmente. Sperăm că veți înțelege elementele de bază și această postare v-a dat suficient de mult înțelegerea că puteți merge mai departe și să vă dați seama de restul. Mai important, sper că v-a arătat câteva dintre utilizările posibile ale fragmentelor și potențialul pe care îl oferă pentru un design mai inteligent al aplicațiilor.

Dacă doriți să vedeți un alt exemplu de fragmente în acțiune, atunci nu uitați să consultați postarea mea recentă despre crearea unui lansator personalizat!

Dezvoltare Android:

  • Cum să creați o aplicație VR pentru Android în doar 7 minute
  • Creați-vă propria acțiune pentru Google Assistant
  • Root Android: Tot ce trebuie să știți!
  • Anatomia unei aplicații: o introducere în ciclurile de viață ale activității
  • Android Jetpack: ce înseamnă anunțurile recente pentru Biblioteca de asistență a Android?

Anterior am făcut o cufundare profundă în ceea ce permite martphone-urilor ă capteze imagini de calitate profeională. Răpunul? Hardware de top.Qualcomm Technologie a devenit unul dintre furnizori...

puneți că doriți ă mergeți pe valul eport vânzând echipament, au poate viul dv. ete ă faceți și ă vindeți pulovere pentru câini. Problema ete de unde începi când vine vorba de...

Popular Pe Site