Како користити фрагменте у Андроид апликацијама за снажан и динамичан кориснички интерфејс

Аутор: John Stephens
Датум Стварања: 28 Јануар 2021
Ажурирати Датум: 19 Може 2024
Anonim
Technology Stacks - Computer Science for Business Leaders 2016
Видео: Technology Stacks - Computer Science for Business Leaders 2016

Садржај


Напомена: Овај чланак претпоставља да сте упознати са основама развоја Андроида и Јаве. Већ би требали бити у могућности да креирате основне изгледе и користите приказе, онЦлицк и финдВиевБиИД. Ако схватите те концепте, спремни сте да научите да користите фрагменте!

Фрагменти су снажна карактеристика доброг Андроид УИ-ја који вам омогућава да приступите дизајну апликација на модуларни начин. Ово су различити прикази који могу садржавати читаве изгледа и који долазе са својим пратећим Јава кодом. Разбијањем корисничког сучеља на овај начин, можете створити више логичких изгледа који ће ваши корисници лакше разумети. Можете им пружити додатне информације и контроле без напуштања активности.

Погледајте такође: Фрагменти без гњаваже: Коришћење компоненте за навигациону архитектуру Андроида

Фрагменти вам пружају знатно више опција у дизајну ваше апликације и могу значајно побољшати корисничко искуство

Штавише, фрагменти се понашају попут класа и објеката у којима можете да имате више инстанци истог фрагмента. То значи да можете користити исти изглед изнова и изнова без потребе за преписивањем кода или чак приказивањем две различите верзије једна поред друге.


Укратко, док ово још није други ствар коју треба да научите када је у питању наизглед бескрајан списак обавеза који се односе на Андроид апликације, то је нешто што вам може пружити знатно више опција у дизајну ваше апликације и значајно побољшати корисничко искуство - чинећи то више него вредним утрошеног времена за упознавање .

Како да направите свој први Андроид фрагмент

Па, шта бисмо могли учинити са фрагментима који не би имали смисла ни на који други начин?

Можда имамо листу датотека - можда је ово галерија слика - и желимо да покажемо опис и дамо кориснику могућност брисања или дељења. Такве ствари. Сваки пут бисмо их могли послати на нову страницу „Опис“ користећи засебну активност, али ако користите фрагменте, можемо их задржати на једној страници која ће мање заударати.

Отворите Андроид Студио и направите листу насумичних слика у Ацтивити_маин.кмл. Користим слике Драгон Балл Супер јер сам штребер и то је оно што лежим на рачунару ...


Сада ћемо да направимо свој први фрагмент.

Да бисте то учинили, идете ка томе Датотека> Ново> Фрагмент. Када то учините, изаберите МаинАцтивити.јава са леве стране, а ви ћете за сада бирати „празан“ фрагмент. Тада ћете моћи да одаберете име за нову креацију, коју ћемо назвати „Опис“. Одвијте два поља испод - не требају нам тренутно.

Након што то учините, установићете да сада имате не само нову јава датотеку која се зове Десцриптион.јава, већ и нову датотеку изгледа под називом фрагмент_десцриптион.кмл - баш као да сте креирали нову класу! То значи да ћете код који иде уз ваш нови фрагмент смјестити у своју засебну јава датотеку.

Додавање изгледа, погледа и кода

Добра вест је да нам је веома лако додати приказе и изглед када користимо фрагменте. То ћемо урадити као што би то обично учинило уређивањем фрагмент_тимер.кмл.

Искористимо поново линеарни изглед и овог пута додајмо неке контроле и описни текст. Овде за сада можете залепити било шта.

Дакле, следеће питање је: како се ово заправо приказује у вашој апликацији?

То можете учинити додавањем фрагмента активности, баш као што бисте то учинили у било којем другом погледу. Дакле, крените на ацтивити_маин.кмл и додајте приказ тако да заузме део екрана - можда доле.

Ако желите да урадите онако како сам урадио, користио сам вертикални линеарни распоред и свим сликама дао тежину 1, а фрагмент тежину 2.

Примјетићете да вам преглед не приказује стварни фрагмент, већ само носач места. Исто тако, приметите да сам морао да унесем назив фрагмента у КСМЛ, тако да Андроид зна где да га нађе. Такође вам треба ИД за сваки фрагмент.

Код

Као што је речено, код који требамо користити фрагменте ићи ће у своју јава датотеку. У овом случају то је Опис.јава датотека.

Ако проверите ову страницу, видећете да постоји конструктор (као у било којој класи који ствара предмет) и метода која се зове онЦреатеВиев. Том методом се користи кмл за надувавање тог приказа, а такође је еквивалент вашем уобичајеном онЦреате метода у стандардној активности.

Углавном, овде можете радити ствари онако као што би иначе радили. финдВиевБиИД ради и то можете користити за промену текста итд., али ћете морати да добијете референцу мало другачије. Промените ред који гласи:

вратити инфлатер.инфлате (Р.лаиоут.фрагмент_десцриптион, контејнер, лажно);

До:

Погледајте в = инфлатер.инфлате (Р.лаиоут).фрагмент_десцриптион, контејнер, лажно);

А затим користите:

в.финдВиевБиИД.

Сада можете приступити својим приказима као што обично би:

јавни поглед онЦреатеВиев (ЛаиоутИнфлатер надувавање, спремник ВиевГроуп, Бундле савеИнстанцеСтате) {Виев в = инфлатер.инфлате (Р.лаиоут.фрагмент_десцриптион, контејнер, лажно); Дугме окБуттон = в.финдВиевБиИд (Р.ид.ок) ;; Буттон схареБуттон = в.финдВиевБиИд (Р.идОбјави); окБуттон.сетОнЦлицкЛистенер (нови Виев.ОнЦлицкЛистенер () {публиц воид онЦлицк (Виев в) {Тоаст.макеТект(гетАцтивити (), "ОК!", тост.ЛЕНГТХ_ЛОНГ ) .хов (); }}); схареБуттон.сетОнЦлицкЛистенер (нови Виев.ОнЦлицкЛистенер () {јавна воид онЦлицк (Виев в) {Тоаст.макеТект(гетАцтивити (), „Дељење ...“, Тост.ЛЕНГТХ_ЛОНГ ) .хов (); }}); ретурн в; }}

Користите фрагменте са вишеструким инстанцама

Можете видети како је много лакше створити поједностављено корисничко сучеље и код када користимо фрагменте. Уместо да користите распореде унутар распореда, а затим жонглирање великим бројем кликова, унутар једне Јава датотеке. Штавише, овај „модуларни“ приступ омогућио би вам да користите овај приказ у активностима, па чак и у менијима и на другим динамичким локацијама.

Али заиста цоол део је чињеница да можете имати више примерака истог тог фрагмента, који постоји у исто време.

То је једноставно: једноставно додате више приказа и надувавате тачно истим кодом.

Сада се надамо да можете почети да видите неку снагу коришћења фрагмената: замислите да имате Рецицлер Виев (списак за скроловање) слика, од којих свака има детаље и контроле одмах испод. Неће бити потребно да креирате потпуно нови изглед сваки пут и можете сакрити приказе док корисник не кликне на слику!

Шта више је то што можете и да генеришете нове фрагменте програмски. Све што требате је негде да би фрагмент ушао у ваш изглед - попут изгледа оквира (који ћу назвати фрагментТаргет) и онда можете урадити следеће:

Фрагмент аддедФрагмент = нови Опис (); Трансакција ФрагментТрансацтион = гетСуппортФрагментМанагер (). БегинТрансацтион (); ацтион.реплаце (Р.идфрагментТаргет, доданФрагмент); ацтион.аддТоБацкСтацк (нулл); ацтион.цоммит ();

Обавезно увезите потребне часове - биће вам затражено кад год покушате да користите фрагменте у вашем коду. Само обавезно одаберите горњу опцију која каже „в4“.

Важно је додавање фрагмената програмско, јер значи да бисмо могли да створимо динамички списак слика (које смо преузели, које се налазе у одређеној фасцикли итд.) И затим да нам се одмах прикажу детаљи.

Дакле, у овом новом примеру је други фрагмент програмски додан.

Коначно, можда ћете морати да промените изглед фрагмената у зависности од тога где се налазе. Добра вест је да то можете лако да унесете ИД као пакет када креирате фрагмент, а затим екстрахирате ту вредност на другом крају.

У МаинАцтивити.јава користите:

Пакет пакета = нови Бундле (); бундле.путИнт ("ИД", 1); аддедФрагмент.сетАргументс (пакет);

А онда у Десцриптион.јава додати:

инт еиеД = 0; Бундле бундле = тхис.гетАргументс (); иф (бундле! = нулл) {еиеД = бундле.гетИнт ("ИД", 0); } свитцх (еиеД) {случај 1:…

Тада бисте могли, на пример, навести апликацију да приказује различите белешке за сваку слику.

Затварање коментара

Тако да користите фрагменте. Надам се да сте схватили основе и овај пост вам је дао довољно разумевања да можете ићи напред и смислити све остало. Што је још важније, надам се да вам је показао неке од могућих употреба фрагмената и потенцијал који нуде за паметнији дизајн апликација.

Ако желите да видите још један пример фрагмената у деловању, онда проверите мој недавни пост о креирању прилагођеног покретача!

Андроид развој:

  • Како створити ВР апликацију за Андроид за само 7 минута
  • Израдите сопствену акцију за Гоогле Ассистант
  • Роот Андроид: Све што треба да знате!
  • Анатомија апликације: увод у животне циклусе активности
  • Андроид Јетпацк: Шта недавне најаве значе за Андроид-ову библиотеку подршке?

ХТЦ игрицу са камером сигурно схвата озбиљно, не само што је унапредио анте с Десире Еие, паметним паметним телефоном врхунског дизајна са јединственим подешавањем предње камере, већ увођењем самостал...

ХТЦ можда није краљ мобилних какав је некада био, али далеко је од тога да се броји. Прошле године ХТЦ је понудио пријеко потребан дизајн на своју водећу серију, замијенивши метал за стакло. У 2018. г...

Занимљиво Данас