Paano gamitin ang mga fragment sa iyong Android apps para sa isang malakas at dynamic na UI

May -Akda: John Stephens
Petsa Ng Paglikha: 28 Enero 2021
I -Update Ang Petsa: 19 Mayo 2024
Anonim
DON’T WASTE YOUR MONEY!! iPad Pro vs Galaxy Tab S8 Ultra
Video.: DON’T WASTE YOUR MONEY!! iPad Pro vs Galaxy Tab S8 Ultra

Nilalaman


Tandaan: Ipinapalagay ng artikulong ito na pamilyar ka sa mga pangunahing kaalaman sa pag-unlad ng Android at Java. Maaari ka nang makalikha ng mga pangunahing layout at gumamit ng mga view, onClick at hanapinViewByID. Kung nauunawaan mo ang mga konsepto na iyon, handa kang matutong gumamit ng mga fragment!

Ang mga fragment ay isang malakas na tampok ng mahusay na Android UI na nagbibigay-daan sa iyo upang lapitan ang disenyo ng app sa isang modular na paraan. Ang mga ito ay magkakaibang mga tanawin na maaaring maglaman ng buong mga layout at na may sariling kasamang Java code. Sa pamamagitan ng pagsira sa iyong UI sa ganitong paraan, maaari kang lumikha ng higit pang mga lohikal na layout na mas madaling maunawaan ng iyong mga gumagamit. Maaari kang magbigay sa kanila ng karagdagang impormasyon at mga kontrol nang wala silang kinakailangang iwanan ang aktibidad.

Tingnan din: Mga fragment na walang gulo: Gamit ang Component ng Arkitektura ng Arkitektura ng Android


Binibigyan ka ng mga fragment ng higit pang mga pagpipilian sa disenyo ng iyong app at maaaring makabuluhang mapabuti ang karanasan ng gumagamit

Ang higit pa, ang mga fragment ay kumikilos tulad ng mga klase at mga bagay na maaari kang magkaroon ng maraming mga pagkakataon ng parehong fragment. Nangangahulugan ito na maaari mong muling gamitin ang parehong layout nang paulit-ulit nang hindi kinakailangang muling isulat ang code, o kahit na magpakita ng dalawang magkakaibang bersyon na magkatabi.

Sa madaling sabi, habang ito ay wala pa isa pa bagay na matutunan pagdating sa tila walang katapusang to-list na kasangkot sa mga Android apps, ito ay isang bagay na maaaring magbigay sa iyo ng mas maraming mga pagpipilian sa disenyo ng iyong app at higit na mapagbuti ang karanasan ng gumagamit - ginagawa itong higit sa halaga ng ginugol ng oras na pamilyar .

Paano mabuo ang iyong unang fragment ng Android

Kaya, ano ang magagawa natin sa mga fragment na hindi magkakaroon ng kahulugan sa iba pang paraan?


Marahil mayroon kaming isang listahan ng mga file - marahil ito ay isang gallery ng imahe - at nais naming magpakita ng isang paglalarawan at bigyan ang pagpipilian ng user na tanggalin o ibahagi. Ang ganyang uri ng bagay. Maaari naming ipadala ang mga ito sa isang bagong pahina ng 'paglalarawan' sa bawat oras sa pamamagitan ng paggamit ng isang hiwalay na aktibidad, ngunit kung gumagamit ka ng mga fragment maaari naming panatilihin ang mga ito sa isang pahina na hindi gaanong maiiwasan.

Buksan ang Android Studio at lumikha ng isang listahan ng mga random na imahe sa aktibidad_main.xml. Gumagamit ako ng mga larawan ng Dragon Ball Super dahil ako ay isang nerd at iyon ang aking nakahiga sa aking PC ...

Ngayon ay gagawa kami ng aming unang fragment.

Upang gawin ito, pupunta ka File> Bago> Fragment. Ang MainActivity.java ay kailangang mapili sa kaliwa kapag ginawa mo ito, at pipili ka ng isang 'blangko' na fragment para sa ngayon. Pagkatapos ay makakapili ka ng isang pangalan para sa iyo ang bagong paglikha, na tatawagin naming 'Deskripsyon'. Buksan ang dalawang kahon sa ilalim - hindi namin ito kailangan ngayon.

Kapag ito ay tapos na, makikita mo na ngayon ay hindi lamang isang bagong file ng java na tinatawag na Description.java, kundi pati na rin isang bagong layout ng file na tinatawag na fragment_description.xml - tulad ng kung lumikha ka ng isang bagong klase! Nangangahulugan ito na ilalagay mo ang code na kasama ng iyong bagong fragment sa sarili nitong hiwalay na file ng java.

Pagdaragdag ng mga layout, pananaw at code

Ang magandang balita ay napakadali para sa amin na magdagdag ng mga tanawin at layout kapag gumagamit kami ng mga fragment. Gagawin namin ito tulad ng dati naming normal sa pamamagitan ng pag-edit ng fragment_timer.xml.

Gumamit ulit tayo ng isang linear layout at sa oras na ito magdagdag ng ilang mga kontrol at naglalarawang teksto. Maaari kang dumikit kahit ano para sa ngayon.

Kaya ngayon ang susunod na tanong ay: kung paano mo ito ipakita ng aktwal sa iyong app?

Maaari mong gawin ito sa pamamagitan ng pagdaragdag ng fragment sa aktibidad, tulad ng gagawin mo sa iba pang view. Kaya, tumungo sa activity_main.xml at idagdag ang view upang tumatagal ng isang bahagi ng screen - marahil ay sa ilalim.

Kung nais mong gawin ito sa paraang ginawa ko, gumamit ako ng isang patayong layout ng linear at binigyan ang lahat ng mga imahe ng bigat ng 1 at ang fragment na bigat ng 2.

Mapapansin mo na ang preview ay hindi magpapakita sa iyo ng aktwal na fragment, isang taglay lamang ng lugar. Gayundin, mapansin na kailangan kong isama ang pangalan ng fragment sa XML, upang malaman ng Android kung saan hahanapin ito. Kailangan mo rin ng isang ID para sa bawat fragment.

Ang code

Tulad ng tinalakay, ang code na kailangan naming gumamit ng mga fragment ay pupunta sa sarili nitong file ng java. Sa kasong ito, ang file na Description.java.

Kung susuriin mo ang pahinang ito, makikita mo na mayroong isang tagabuo (tulad ng sa anumang klase na lumilikha ng isang bagay) at isang pamamaraan na tinawag onCreateView. Ang paraang iyon ay kung saan ang xml ay ginagamit upang mapintal ang pananaw na iyon at katumbas din ito ng iyong dati onCreate pamamaraan sa isang karaniwang aktibidad.

Para sa karamihan, magagawa mo ang mga bagay tulad ng karaniwan mong narito. hanapinViewByID gumagana at maaari mong gamitin ito upang baguhin ang teksto atbp ngunit kakailanganin mong makuha ang sanggunian nang bahagyang naiiba. Baguhin ang linya na bumabasa:

ibalik ang inflater.inflate (R.layout.fragment_deskrip, lalagyan, maling);

Upang:

Tingnan ang v = inflater.inflate (R.layout.fragment_deskrip, lalagyan, maling);

At pagkatapos ay gamitin:

v.findViewByID.

Ngayon ay ma-access mo ang iyong mga pananaw tulad ng karaniwan mong:

pampublikong Tingnan onCreateView (LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState) {View v = inflater.inflate (R.layout.fragment_deskrip, lalagyan, maling); Button okButton = v.findViewById (R.id.OK) ;; Pagbabahagi ng pindutan Button = v.findViewById (R.id.Ibahagi); okButton.setOnClickListener (bagong View.OnClickListener () {pampublikong walang bisa saClick (Tingnan ang v) {Toast.gumawa ngTeksto(getActivity (), "OK!", toast.LENGTH_LONG ) .show (); }}); shareButton.setOnClickListener (bagong View.OnClickListener () {public void onClick (View v) {Toast.gumawa ngTeksto(getActivity (), "Sharing ...", toast.LENGTH_LONG ) .show (); }}); bumalik v; }}

Gumamit ng mga fragment na may maraming mga pagkakataon

Maaari mong makita kung paano mas madaling lumikha ng isang naka-stream na UI at code kapag gumagamit kami ng mga fragment. Sa halip na gumamit ng mga layout-loob-layout at pagkatapos ay mag-juggling ng maraming mga pag-click sa loob ng isang solong Java file. Ang mas higit pa ay ang pamamaraang 'modular' na ito ay magpapahintulot sa iyo na magamit ang view na ito sa mga aktibidad at maging sa mga menu at iba pang mga dynamic na lokasyon.

Ngunit ang talagang cool na bahagi ay ang katotohanan na maaari kang magkaroon ng maraming mga pagkakataon ng parehong kaparehas na fragment na lahat ng mayroon nang sa parehong oras.

Upang magawa ito ay simple: magdagdag ka lamang ng higit sa isang pagtingin at mamulat sa eksaktong eksaktong code.

Ngayon sana ay masimulan mong makita ang ilan sa lakas ng paggamit ng mga fragment: isipin ang pagkakaroon ng isang Recycler View (isang scroll list) ng mga imahe, ang bawat isa ay may mga detalye at kontrol sa ilalim lamang. Hindi na kailangang lumikha ng isang bagong bagong layout sa bawat oras at maaari mong itago ang mga tanawin hanggang sa nag-click ang gumagamit sa larawan!

Ang higit pa ay maaari ka ring makabuo ng mga bagong fragment sa programa. Ang kailangan mo lang ay sa isang lugar para sa fragment na pupunta sa iyong layout - tulad ng isang layout ng frame (na tatawagin ko fragmentTarget) at pagkatapos ay maaari mong gawin ang sumusunod:

Dagdag ng FragmentFragment = bagong paglalarawan (); Transaksyon ng FragmentTransaction = getSupportFragmentManager (). StartTransaction (); transaksyon.replace (R.id.fragmentTarget, idinagdagFragment); transaksyon.addToBackStack (null); transaksi.commit ();

Siguraduhing mag-import ng mga kinakailangang klase - sasabihan ka tuwing susubukan mong gumamit ng mga fragment sa iyong code. Siguraduhin lamang na pumili ng tuktok na pagpipilian na nagsasabing 'v4'.

Mahalaga upang magdagdag ng mga fragment sa programmatically ay mahalaga dahil nangangahulugan ito na maaari kaming makabuo ng isang dynamic na listahan ng mga imahe (na na-download namin, na matatagpuan sa isang tiyak na folder atbp.) At pagkatapos ay agad na mag-pop up ang mga detalye.

Kaya, sa bagong halimbawa na ito, ang pangalawang fragment ay naidagdag sa programmatically.

Sa wakas, maaari mong makita ang iyong sarili na nais na baguhin ang hitsura ng iyong mga fragment depende sa kung saan matatagpuan ang mga ito. Ang magandang balita ay magagawa mo ito nang madali sa pamamagitan ng pagpasa ng isang ID bilang isang bundle kapag nilikha mo ang fragment at pagkatapos ay kunin ang halagang iyon sa kabilang dulo.

Sa paggamit ng MainActivity.java:

Bundle bundle = bagong Bundle (); bundle.putInt ("ID", 1); idinagdagFragment.setArguments (bundle);

At pagkatapos ay sa Paglalarawan.java magdagdag:

int eyeD = 0; Bundle bundle = this.getArguments (); kung (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } lumipat (eyeD) {kaso 1: ...

Maaari mong pagkatapos - halimbawa - makuha ang iyong app upang ipakita ang iba't ibang mga tala para sa bawat imahe.

Ang pagsasara ng mga komento

Kaya kung paano mo ginagamit ang mga fragment. Sana maunawaan mo ang mga pangunahing kaalaman at ang post na ito ay nagbigay sa iyo ng sapat na pag-unawa na maaari mong magpatuloy at malaman ang natitira. Mas mahalaga, inaasahan kong ipinakita sa iyo ang ilan sa mga posibleng paggamit ng mga fragment at ang potensyal na inaalok nila para sa mas matalinong disenyo ng app.

Kung nais mong makakita ng isa pang halimbawa ng mga fragment na kumikilos, siguraduhing suriin ang aking kamakailang post sa paglikha ng isang pasadyang launcher!

Pag-unlad ng Android:

  • Paano lumikha ng isang VR app para sa Android sa loob lamang ng 7 minuto
  • Bumuo ng iyong sariling Aksyon para sa Google Assistant
  • Root Android: Lahat ng kailangan mong malaman!
  • Anatomy ng isang app: Isang pagpapakilala sa mga lifecycles ng aktibidad
  • Android Jetpack: Ano ang ibig sabihin ng mga kamakailang mga anunsyo para sa Support Library ng Android?

Ilang linggo na ang nakalilipa, ipinakilala kami ni Kri a paka ng mga olidong baterya ng etado at kung paano maaaring ila ang uunod na pangunahing pagulong a teknolohiya ng baterya ng martphone. a mai...

Halo anumang itwayon ay maaaring mapabuti a pamamagitan ng pakikinig a muika. Ano ang mangyayari kung wala kang puwang na magdala ng iang malaking nagaalita a iyo? Iyon ay kung aan ang Little Wonder o...

Fresh Articles.