uma forma linear horizontal ou vertical • FrameLayout - Permite a sobreposição de vários dos seus filhos; • RelativeLayout - Layout em que os seus filhos se dispõe relativamente à posição entre si ou ao seu pai. Na criação de um layout, é boa prática adicionar o menor número possível de níveis na hierarquia de views por forma a optimizar o desempenho e o desenho. 19
interface, tal como uma activity ou um widget. É possível declarar um layout de duas formas: • XML • Instanciação de elementos em tempo de execução (java) Declarar a UI em XML permite uma melhor separação da camada de apresentação (UI) do código da aplicação que controla o seu comportamento. 20
obrigatórias as seguintes: • android:layout_width = “wrap_content” ou “match_parent” ou medida • android:layout_height = “wrap_content” ou “match_parent” ou medida match_parent indica que a view é do tamanho do seu “pai”. wrap_content indica que a view contém apenas o tamanho necessário para mostrar todo o seu conteúdo. 27
independent pixel) para o tamanho das views e sp (scale independent pixel) para o tamanho do texto, isto é, a propriedade textSize. A medida px está descontinuada! 28
numa única coluna ou linha através da propriedade orientation. android:orientation = horizontal ou vertical É possível também dividir a sua largura ou altura de forma equitativa entre os seus “filhos” através da utilização da propriedade: android:weightSum = [valor] O valor atribuído no weightSum, tem depois de ser dividido por todos os seus “filhos” na propriedade android:layout_weight 31
à posição entre si ou ao seu pai. É possivel atribuir a posição de um “filho” relativamente ao topo do “pai”: android:layout_alignParentTop = true ou false É também possível colocar uma view à direita ou esquerda de outro: android:layout_toRightOf = “@+id/{idView}” e da mesma forma é possível também colocar em baixo ou em cima: android:layout_below = “@+id/{idView}” 33
dispor um único item. Geralmente é utilizado para manter apenas um “filho” porque pode ser difícil manipular os “filhos” sem a sua sobreposição. No entanto, esta sobreposição é também uma das razões porque se utiliza framelayouts. É possível manipular a posição de cada filho a partir da propriedade android:layout_gravity = top,bottom,left,right,center,center_vertical, etc. 35
ficheiro xml na pasta layouts. Note que: • Os botões do fundo estão distribuídos equitativamente; • A editText está centrada no ecrã (tanto a nível horizontal como vertical) • A textView laranja está alinhada à esquerda, a vermelha à direita e a roxa centrada entre as duas últimas com a mesma altura. 38