Kaip naudoti fragmentus „Android“ programose norint sukurti galingą ir dinamišką vartotojo sąsają

Autorius: John Stephens
Kūrybos Data: 28 Sausio Mėn 2021
Atnaujinimo Data: 19 Gegužė 2024
Anonim
Android Layout Design Tutorial |  Android UI Design Explained | Android Studio Tutorial | Edureka
Video.: Android Layout Design Tutorial | Android UI Design Explained | Android Studio Tutorial | Edureka

Turinys


Pastaba: šiame straipsnyje daroma prielaida, kad esate susipažinęs su „Android“ kūrimo ir „Java“ pagrindais. Jau turėtumėte mokėti kurti pagrindinius maketus ir naudoti rodinius, paspaudus ir „findViewByID“. Jei suvokiate šias sąvokas, esate pasirengęs išmokti naudoti fragmentus!

Fragmentai yra galinga geros „Android“ UI savybė, leidžianti pritaikyti programos dizainą moduliniu būdu. Tai yra atskiri vaizdai, kuriuose gali būti visi išdėstymai, ir kurie pateikiami kartu su savo „Java“ kodu. Tokiu būdu suskaidę vartotojo sąsają, galite sukurti logiškesnius išdėstymus, kuriuos vartotojams bus lengviau suprasti. Galite jiems suteikti papildomos informacijos ir valdiklių, neišėję iš veiklos.

Taip pat žiūrėkite: fragmentai be vargo: „Android“ navigacijos architektūros komponento naudojimas

Fragmentai suteikia žymiai daugiau programų dizaino galimybių ir gali žymiai pagerinti vartotojo patirtį

Be to, fragmentai veikia kaip klasės ir objektai, kuriuos galite turėti kelis atvejų to paties fragmento. Tai reiškia, kad jūs galite vėl ir vėl naudoti tą patį išdėstymą nereikia perrašyti kodo ar net parodyti dvi skirtingas versijas viena šalia kitos.


Trumpai tariant, kol tai dar yra kita dalykas, kurio reikia išmokti, kai atrodo, kad su „Android“ programomis susijęs be galo svarbus sąrašas darbų, tai gali suteikti jums žymiai daugiau programų kūrimo galimybių ir iš esmės pagerinti naudotojų patirtį - padaryti tai daugiau nei verta laiko, praleisto susipažįstant .

Kaip sukurti savo pirmąjį „Android“ fragmentą

Taigi, ką mes galime padaryti su fragmentais, kurie neturi prasmės kitaip?

Galbūt turime failų sąrašą - galbūt tai yra vaizdų galerija - ir norime parodyti aprašą bei suteikti vartotojui galimybę ištrinti ar bendrinti. Toks dalykas. Kiekvieną kartą galėtume nusiųsti juos į naują „Aprašymo“ puslapį naudodamiesi atskira veikla, tačiau jei naudosite fragmentus, galime juos laikyti tame pačiame puslapyje, kuris bus mažiau sugadintas.

Atidarykite „Android Studio“ ir sukurkite atsitiktinių vaizdų sąrašą veikla_main.xml. Aš naudoju nuotraukas iš Drakono rutulio super nes aš esu vėpla ir štai ką aš guliu prie savo kompiuterio ...


Dabar mes sukursime savo pirmąjį fragmentą.

Norėdami tai padaryti, jūs eisite į galvą Failas> Naujas> Fragmentas. „MainActivity.java“ reikia pasirinkti kairėje, kai tai padarysite, ir dabar pasirinksite „tuščią“ fragmentą. Tada galėsite pasirinkti naujo kūrinio pavadinimą, kurį vadinsime „Aprašu“. Nuimkite dvi dėžes po apačia - mums to dabar nereikia.

Tai atlikę, pamatysite, kad dabar turite ne tik naują „Java“ failą pavadinimu Description.java, bet ir naują išdėstymo failą pavadinimu fragment_description.xml - lygiai taip, lyg būtumėte sukūrę naują klasę! Tai reiškia, kad kodą, kuris pridedamas prie jūsų naujojo fragmento, įdėsite į savo atskirą „Java“ failą.

Maketų, rodinių ir kodo pridėjimas

Geros žinios yra tai, kad mums labai lengva pridėti rodinius ir maketą, kai naudojame fragmentus. Mes tai padarysime taip, kaip įprastai, redaguodami fragmentą_timer.xml.

Panaudosime dar kartą linijinį išdėstymą ir šį kartą pridėkite keletą valdiklių ir aprašomąjį tekstą. Šiuo metu čia galite klijuoti bet ką.

Taigi kitas klausimas yra: kaip padaryti, kad tai iš tikrųjų būtų rodoma jūsų programoje?

Tai galite padaryti pridėdami fragmentą prie veiklos, kaip ir darytumėte bet kurį kitą vaizdą. Taigi eikite į activity_main.xml ir pridėkite vaizdą taip, kad jis užimtų dalį ekrano - galbūt apačioje.

Jei norite tai padaryti taip, kaip aš, aš naudojau vertikalų linijinį išdėstymą ir visiems vaizdams suteikiau 1 svorį, o fragmentą - 2.

Pastebėsite, kad peržiūra nerodo tikrojo fragmento, o tik vietos laikiklį. Taip pat atkreipkite dėmesį, kad turėjau į XML įtraukti fragmento pavadinimą, kad „Android“ žinotų, kur jį rasti. Jums taip pat reikia kiekvieno fragmento ID.

Kodas

Kaip aptarta, kodas, kurį turime naudoti fragmentams, pateks į savo „Java“ failą. Tokiu atveju tai yra „Description.java“ failas.

Jei patikrinsite šį puslapį, pamatysite, kad yra konstruktorius (kaip ir bet kurioje klasėje, kuriančiame objektą) ir metodas vadinamas „onCreateView“. Taikant šį metodą xml naudojamas tam, kad padidintum tą rodinį, ir jis taip pat yra tavo įprasto atitikmuo onCreate metodas standartinėje veikloje.

Didžiąją dalį dalykų galite daryti taip, kaip įprasta. „findViewByID“ veikia ir jūs galite tai naudoti norėdami pakeisti tekstą ir tt, bet jums reikės gauti nuorodą šiek tiek kitaip. Pakeiskite šią eilutę:

grąžinti inflater.inflate (R.layout.fragmento aprašymas, konteineris, netikras);

Kam:

Peržiūra v = inflater.inflate (R.layout.fragmento aprašymas, konteineris, netikras);

Ir tada naudokite:

v.findViewByID.

Dabar galite pasiekti savo vaizdus kaip įprasta:

viešas vaizdas onCreateView („LayoutInflater“ pripūtimas, „ViewGroup“ talpykla, „Bundle savedInstanceState“) {View v = inflater.inflate (R.layout.fragmento aprašymas, konteineris, netikras); Mygtukas okButton = v.findViewById (R.id.Gerai) ;; Mygtukas shareButton = v.findViewById (R.id.Dalintis); „okButton.setOnClickListener“ (naujas „View.OnClickListener“) {public void onClick (View v) {Toast.makeText(„getActivity“), „Gerai!“, skrudinta duona.LENGTH_LONG ).Rodyti(); }}); „shareButton.setOnClickListener“ (nauja „View.OnClickListener“) {public void onClick (View v) {Toast.makeText(„getActivity“), „Bendrinimas ...“, Skrudinta duona.LENGTH_LONG ).Rodyti(); }}); grįžti v; }}

Naudokite fragmentus su daugybinėmis instancijomis

Galite pamatyti, kaip daug lengviau sukurti supaprastintą vartotojo sąsają ir kodą, kai mes naudojame fragmentus. Užuot naudoję maketus maketų viduje ir žongliruodami daugybę paspaudimų, darykite juos viename „Java“ faile. Be to, šis „modulinis“ požiūris leis jums naudoti šį vaizdą vykdant veiklą ir net meniu bei kitose dinamiškose vietose.

Tačiau tikrai šauni dalis yra tai, kad jūs galite turėti kelis to paties fragmento egzempliorius, visus egzistuojančius tuo pačiu metu.

Tai padaryti paprasta: tiesiog pridėkite daugiau nei vieną rodinį ir išpūskite tiksliai tuo pačiu kodu.

Dabar tikiuosi, kad galėsite pamatyti kai kurias fragmentų naudojimo galimybes: įsivaizduokite, kad vaizduojate „Recycler View“ (slenkantį sąrašą) vaizdų, kurių kiekvienas turi išsamią informaciją ir valdiklius. Nereikės kiekvieną kartą kurti visiškai naujo išdėstymo ir galėjote paslėpti rodinius, kol vartotojas spustelėjo paveikslėlį!

Be to, programiškai taip pat galite generuoti naujus fragmentus. Viskas ko jums reikia, kad fragmentas patektų į jūsų išdėstymą, pavyzdžiui, rėmelio išdėstymą (kurį aš pavadinsiu fragmentTarget) ir tada galėsite atlikti šiuos veiksmus:

Fragmentas pridėtasFragmentas = naujas aprašymas (); „FragmentTransaction“ operacija = getSupportFragmentManager (). transakcija.pakeisti (R.id.fragmentTarget, pridėtasFragmentas); Transakcija.addToBackStack (nulis); tehing.commit ();

Importuokite būtinas klases - būsite paraginti kaskart bandydami naudoti fragmentus savo kode. Tiesiog įsitikinkite, kad pasirinkote viršutinę parinktį „v4“.

Galimybė programiškai pridėti fragmentų yra labai svarbi, nes tai reiškia, kad galime sukurti dinamišką vaizdų (kuriuos atsisiuntėme, kurie yra tam tikrame aplanke ir tt) sąrašą ir tada nedelsdami pateikti mums informaciją.

Taigi, šiame naujame pavyzdyje antrasis fragmentas buvo pridėtas programiškai.

Galiausiai galite pastebėti, kad norite pakeisti savo fragmentų išvaizdą, atsižvelgiant į tai, kur jie yra. Geros žinios yra tai, kad tai galite lengvai padaryti perduodami ID kaip paketą, kai sukuriate fragmentą, o tada ištraukite tą vertę kitame gale.

„MainActivity.java“ naudokite:

Bundle pluoštas = naujas Bundle (); „bundle.putInt“ („ID“, 1); AddedFragment.setArguments (paketas);

Tada į „Description.java“ pridėkite:

int eyeD = 0; Bundle pluoštas = this.getArguments (); if (pluoštas! = nulis) {eyeD = bundle.getInt ("ID", 0); } jungiklis („eyeD“) {1 atvejis:…

Tada galėtumėte, pavyzdžiui, gauti programą, kad kiekvienam vaizdui būtų rodomos skirtingos pastabos.

Uždarymo komentarai

Taigi štai kaip jūs naudojate fragmentus. Tikimės, kad suprasite pagrindus ir šis įrašas suteikė pakankamai supratimo, kad galite eiti į priekį ir išsiaiškinti visa kita. Dar svarbiau, kad tikiuosi, kad jis jums parodė kai kuriuos galimus fragmentų naudojimo būdus ir galimybes, kuriuos jie teikia intelektualesniam programų dizainui.

Jei norite pamatyti kitą veikiančių fragmentų pavyzdį, būtinai peržiūrėkite mano naujausią įrašą apie pasirinktinio paleidimo priemonės sukūrimą!

„Android“ kūrimas:

  • Kaip sukurti „VR“ programą „Android“ vos per 7 minutes
  • Sukurkite savo „Google Assistant“ veiksmą
  • Šakninis „Android“: viskas, ką reikia žinoti!
  • Programos anatomija: Įvadas į gyvenimo ciklą
  • „Android Jetpack“: ką naujausi pranešimai reiškia „Android“ palaikymo bibliotekai?

„amung Galaxy Note 8“ pairodė praėjuią avaitę po ilgų laukimo mėneių ir greičiauiai apie tai kalbėime dar daugelį mėneių. Tai yra naujauia pagrindini Pietų Korėjo gamintojo pavyzdini laiva, pateikiant...

„Bet Buy“ įvykdė andorį dėl „amung Galaxy Note 8“ ir umažino iki 360 UD uaktyvinant „print“ (per „PhoneArena“). Tai yra viena iš žemiauių kainų, kokią matėme 2017 m. Rudenį....

Populiarus. T