-
Title:
Add the Other Team in XML
-
Description:
-
Antes de começar,
vou responder a esta pergunta.
-
Eu só sei
de dois ViewGroups:
-
LinearLayouts
e RelativeLayouts.
-
A questão aqui...
-
é que estes espaço
deve ser dividido ao meio.
-
Usando layout_weight
fica bem fácil.
-
Bem, vamos ver o código.
-
Não estou mais
trabalhando em Java,
-
então vou até a aba
activity_main.xml.
-
Aqui está meu XML.
-
Eu vou começar
colando todo este código
-
em outro LinearLayout.
-
Este é o LinearLayout pai...
-
dos meus dois
LinearLayouts menores.
-
E vou trazer estas duas linhas
aqui para cima...
-
porque elas precisam
estar anexadas à rootView.
-
Adiciono uma chave
de fechamento.
-
O Android Studio
fez automaticamente
-
uma tag de fechamento
para mim aqui.
-
Vou simplesmente
recortá-la...
-
e colá-la no final.
-
Certo,
um sublinhado vermelho.
-
O erro diz...
-
que devo definir
layout_height e layout_width.
-
Opa! Vamos fazer isso.
-
Como esta é a rootView,
-
usarei match_parent.
-
Certo, eu tenho
um LinearLayout
-
envolvendo
um LinearLayout filho.
-
Se eu pré-visualizar...
-
É quase a mesma coisa.
-
Certo, então vou copiar...
-
tudo no LinearLayout
do time A...
-
e colarei sob o time A.
-
Este será o LinearLayout
do time B.
-
As coisas estão começando
a ficar meio bagunçadas.
-
Vou apertar Cmd+A,
ou "Selecionar tudo",
-
e vou usar o atalho de teclado
Cmd+Option+L
-
para formatar meu código.
-
No Windows, é Ctrl+Alt+L.
Agora está melhor.
-
Quero garantir que você está
entendendo o que houve.
-
No topo,
há um LinearLayout raiz.
-
Começa aqui e,
rolando para o fim,
-
termina aqui.
-
Dentro do LinearLayout raiz -
vou voltar para cima -
-
tem um layout filho,
que começa aqui -
-
vou rolar devagar -
-
e termina aqui.
É do time A.
-
E tem outro
LinearLayout filho,
-
que começa aqui -
vou rolar devagar -
-
e termina aqui,
que é do time B.
-
Percebi algo vermelho
lá em cima,
-
então vou voltar
para ver o erro.
-
"Orientação errada,
não especificada
-
e padrão é horizontal,
-
mas layout tem
muitos filhos
-
e a largura de pelo menos um
é igual à do pai."
-
Eu quero mesmo
que seja horizontal.
-
Mas vamos especificar
a orientação.
-
Isto não é de fato necessário,
pois o padrão é horizontal,
-
mas é bom deixar explícito.
-
E dizia algo sobre os filhos
estarem se sobrepondo.
-
Vou pré-visualizar.
-
Não parece ter mudado
muita coisa,
-
embora eu tenha tido o trabalho
de copiar outro LinearLayout.
-
Pode ter a ver com o erro
que acabei de ler.
-
Dizia que é
um layout horizontal,
-
que tenta justapor
estes LinearLayouts,
-
mas que o layout_width
do LinearLayout
-
é match_parent,
o que toma a tela.
-
Então meu primeiro LinearLayout
está tomando a tela toda...
-
e o outro está justaposto
em algum lugar fora da tela.
-
Vamos pensar
no que pretendemos.
-
Queremos que os layouts
tomem o mesmo espaço
-
e fiquem lado a lado.
-
Eis o que teremos que usar:
layout_weights.
-
Vou até o primeiro
LinearLayout...
-
e adicionarei
"layout_weight=1".
-
Também vou definir
sua largura como 0.
-
Já dá para ver que temos
dois LinearLayouts
-
que só não estão
sendo bem exibidos.
-
Mas já melhorou.
-
Também porei layout_weight
no meu segundo LinearLayout,
-
este aqui.
-
Vou rolar para baixo...
Aqui está o segundo.
-
Vou fazer
a mesmíssima coisa.
-
Definirei que ele também
tem peso 1,
-
ou seja,
layout_weights iguais,
-
e definirei a largura como 0.
-
Bom, a razão para definir
as larguras como 0...
-
é que, se os dois lados
não tomam nenhum espaço,
-
todo o espaço extra,
ou seja, a tela toda,
-
será dividido ao meio
e distribuído aos dois,
-
pois ambos têm
o mesmo peso.
-
Se isso for meio confuso,
deixei alguns vídeos
-
nas "Notas do instrutor"
sobre layout_weight.
-
Bom, está bem legal,
só que diz que é do time A.
-
Vou rolar a tela
e mudar isso.
-
Pronto, mudei para time B.
-
Você pode ter percebido
que tem outro erro aqui.
-
Este erro acontece
por termos um ID duplicado.
-
Lembre-se,
eu copiei e colei um código.
-
Há duas coisas tentando
ter o mesmo ID,
-
"team_a_score".
-
Vou mudar
para "team_b_score".
-
Está bem bonito!
-
Está meio pequeno,
vou dar um zoom,
-
mas diz time B aqui.
-
Todos os botões
e TextViews estão certos,
-
então vou tentar rodar
no meu celular.
-
Pronto. Está bem bonito.
-
Os botões do time A
estão respondendo,
-
que ótimo.
-
E os do time B, bem...
também respondem.
-
Que coisa.
-
Mas nós só queríamos
consertar o XML,
-
não nos importamos
com o Java.
-
Agora que o XML funciona,
que tal consertar o Java?