Релативни распоред - Развој изворних апликација за Андроид са Нетбеанс -ом

А. Релативни изглед је групни приказ који приказује компоненте у позицијама у односу на другу компоненту. Положај сваке компоненте може се одредити у односу на друге елементе, на пример лево од дугмета или испод одређеног оквира за текст или поравнати према дну, лево или у средини.
Почињемо у водичу Развијање изворних апликација за Андроид са Нетбеанс -ом које објашњава како се користи Линеарни распоредУ овом водичу ћемо видети контејнер за креирање интерфејса у Андроиду који је Релативни распоред.
Главна карактеристика овог распореда је да ће компоненте које се налазе у овом контејнеру лоцирати свој положај у односу на остале елементе. На овај начин можемо дефинисати да је Компонента дугмета се налази испод компоненте оквира за текст и она је заузврат хоризонтално поравнана у односу на компоненту Лабел.
Међу особинама које нам помажу да позиционирамо елементе у односу на друге су:
андроид: лаиоут_абове: то значи да ће компонента која има ово својство бити смештена изнад компоненте коју означавамо.
Пример:
 
Дугме ће бити постављено изнад елемента етикете како је назначено андроид: лаиоут_абове = "@ ид / титле"
андроид: лаиоут_алигнЛефт: То значи да се компонента која има ово својство мора подударати са левом ивицом компоненте коју означавамо. Ако желимо да се поклапа са десном ивицом користићемо андроид: лаиоут_алигнРигхт.
андроид: лаиоут_тоЛефтОф: То значи да ће компонента која има ово својство бити смештена лево од компоненте коју означимо.
андроид: лаиоут_тоРигхтОф: То значи да ће компонента која има ово својство бити позиционирана десно од компоненте коју означимо.
андроид: лаиоут_боттом: То значи да ће компонента која има ово својство бити позиционирана испод компоненте коју означавамо.
Програмират ћемо једноставан примјер калкулатора у Андроиду, у овом водичу ћемо користити Нетбеанс и Андроид СДК као што смо то учинили у водичу Развој изворних апликација за Андроид са Нетбеансом.

Креираћемо пројекат ЛаиоутРелативо


Када се пројекат креира, почећемо са дизајном у фасцикли изгледа, отворити датотеку маин.кмл и копирати следећи код:
 
Онда функционалност ћемо написати у Јави у датотеци МаинАцтивити.јава
 пацкаге цом.Релативе; увоз андроид.апп.Ацтивити; импорт андроид.ос.Бундле; увоз андроид.видгет. *; увоз андроид.виев. *; јавна класа МаинАцтивити проширује Ацтивити {// Инсталирамо варијабле и компоненте које ћемо користити // за прорачуне привате доубле нумбер, нумберроб; привате ЕдитТект валуе, валуеб; приватни ТектВиев резултат; публиц воид онЦреате (Бундле саведИнстанцеСтате) {супер.онЦреате (саведИнстанцеСтате); // Покрећемо апликацију са главним распоредом сетЦонтентВиев (Р.лаиоут.маин); // Свакој компоненти додељујемо променљиву тхис.валора = (ЕдитТект) финдВиевБиИд (Р.ид.нумероа); тхис.валорб = (ЕдитТект) финдВиевБиИд (Р.ид.нумероб); тхис.ресулт = (ТектВиев) финдВиевБиИд (Р.ид.ресулт); } публиц воид бтСумар (Виев виев) {// Додај функцију // Ако су обе вредности веће од нуле, претвара се у децимални број и додаје иф (тхис.валуе.гетТект (). тоСтринг (). ленгтх ( )> 0 && тхис.валорб.гетТект (). ТоСтринг (). Ленгтх ()> 0) {тхис.нумероа = Доубле.парсеДоубле (тхис.валора.гетТект (). ТоСтринг ()); тхис.нумероб = Доубле.парсеДоубле (тхис.валорб.гетТект (). тоСтринг ()); тхис.ресулт.сетТект (Доубле.тоСтринг ((тхис.нумероа + тхис.нумероб))); }} публиц воид бтРестар (Виев виев) {// Функција одузимања // Ако су обе вредности веће од нуле, претвара се у децимални број и одузима иф (тхис.валуе.гетТект (). тоСтринг (). ленгтх ()> 0 && тхис.валорб.гетТект (). ТоСтринг (). Ленгтх ()> 0) {тхис.нумероа = Доубле.парсеДоубле (тхис.валора.гетТект (). ТоСтринг ()); тхис.нумероб = Доубле.парсеДоубле (тхис.валорб.гетТект (). тоСтринг ()); тхис.ресулт.сетТект (Доубле.тоСтринг ((тхис.нумероа - тхис.нумероб))); }} публиц воид бтМултиплицар (Виев виев) {// Мултипли фунцтион // Ако су обе вредности веће од нуле, претвара се у децимални број и множи иф (тхис.валуе.гетТект (). тоСтринг (). ленгтх ()> 0 && тхис.валорб.гетТект (). ТоСтринг (). Ленгтх ()> 0) {тхис.нумероа = Доубле.парсеДоубле (тхис.валора.гетТект (). ТоСтринг ()); тхис.нумероб = Доубле.парсеДоубле (тхис.валорб.гетТект (). тоСтринг ()); тхис.ресулт.сетТект (Доубле.тоСтринг ((тхис.нумероа * тхис.нумероб))); }} публиц воид бтДивиде (Виев виев) {// Дивиде фунцтион // Ако су обе вредности веће од нуле, она се конвертује у децимални број и дели ако (тхис.валуе.гетТект (). тоСтринг (). ленгтх ()> 0 && тхис.валорб.гетТект (). ТоСтринг (). Ленгтх ()> 0) {тхис.нумероа = Доубле.парсеДоубле (тхис.валора.гетТект (). ТоСтринг ()); тхис.нумероб = Доубле.парсеДоубле (тхис.валорб.гетТект (). тоСтринг ()); иф (тхис.нумероб! = 0) {тхис.ресулт.сетТект (Доубле.тоСтринг ((тхис.нумероа / тхис.нумероб))); }}} публиц боолеан онЦреатеОптионсМену (Мени менија) {// Креирање менија из шаблона или изгледа гетМенуИнфлатер (). инфлате (Р.мену.маин, мену); ретурн труе; }
Покрећемо апликацију и када се емулатор активира, видећемо следећи екран.

Први оквир за текст прихвата само бројеве који садрже 1 или 5 као што смо навели, што може бити комбинација цифара у спецификацијама дизајна са својством андроид: цифре = "12345"
Такође ћемо додати мени и подмени, у фасциклу Ресурси Направићемо фасциклу под називом мену и унутар кмл датотеке маин.км која ће имати конфигурацију менија.
 
Унутар фолдера вредности морамо декларисати име менија у датотеци стрингс.кмл
 Калкулатор - Конфигурација релативног распореда 
Поново покрећемо апликацију, а затим притиснемо дугме менија и кликнемо на Подешавање.

Постигли смо потпуно функционалну апликацију, да бисмо тестирали како ради ако окренемо мобител и екран мора бити прилагођен притиснемо:

Цтрл + Ф12

Ово ће симулирати окретање мобилног телефона.

Дугмад су постављена према својствима, на пример за дугме Одузми постављамо десно од додавања и поравнавамо са горњом ивицом дугмета за додавање.
 андроид: лаиоут_тоРигхтОф = "@ ид / адд" андроид: лаиоут_алигнТоп = "@ ид / адд"
У случају корисног дугмета, поравнавамо га у односу на прво дугме за додавање и на последње дугме за множење.
 андроид: лаиоут_тоРигхтОф = "@ ид / мултипли" андроид: лаиоут_алигнТоп = "@ ид / адд"
Затим ћемо додати дугме са иконом, за то преузимамо било коју икону са веба ввв.Ицофиндер.цом. Копираћемо икону у фасциклу Ресоурцес / дравабле-мдпи.

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

Главна сврха релативних распореда, као што смо горе рекли за дизајн је да се користи што је могуће мање угнежђених изгледаУ овом примеру Калкулатора користили смо један изглед са свим његовим компонентама. Ово ће омогућити апликацији да буде бржа. Гнежђење са другачијим распоредом успорава и умањује перформансе апликације.
А. Изглед Релативна хијерархија обично Користиће мању количину изгледа и имаће једноставније руковање од хијерархије ЛинеарЛаиоут. Предност у односу на ЛинеарЛаиоут је у томе што морамо креирати нови ЛинеарЛаиоут сваки пут када желимо да променимо оријентацију компоненте или створимо додатне приказе. Због тога се препоручује да прво користите РелативеЛаиоут за било који распоред који има било какву сложеност.
Поврх тога ЛинеарЛаиоут оријентисан је само вертикално или хоризонтално у односу на компоненту док Лаиоут Релативе има много више опција. Ако вам се допао и послужио овај водич, пратите ме!Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave