Pergunta

Estou tentando dividir uma página em três partes. Eu gostaria de fazê -lo em valores percentuais, no entanto, isso não é suportado pelo Android. Em vez disso, tenho que usar android:layout_weight. Mas tenho dificuldade em entender e acertar. Especialmente como o tamanho real é calculado. Existe uma maneira de obter um valor percentual (0..100%) android:layout_weight?

Passei por alguns casos (consulte a captura de tela em anexo) para descrever os problemas. Os campos coloridos são todos <LinearLayout> com android:layout_height="fill_parent", porque quero que a tela cheia seja dividida entre eles.

Caso 1

alt text

Ok, simples. Todo <LinearLayout> recebe 33%.

Caso 2

alt text

Ups?! O primeiro (amarelo) <LinearLayout> desaparece completamente? Por quê?

Caso 3

alt text

Confuso novamente. O amarelo <LinearLayout> está de volta. No entanto, os dois primeiros <LinearLayout> Com o peso mais pesado, fica menor? O que está acontecendo?

Caso 4

alt text

Não tenho absolutamente nenhuma idéia do que é a matemática por trás de tudo isso.

Foi útil?

Solução

Existe uma maneira de obter um valor percentual (0..100%) do Android: layout_weight?

Claro. Faça com que eles somem 100.

Para o seu "valor percentual", você quer o android:layout_height dos itens individuais dentro do LinearLayout ser 0px.

Outras dicas

Quando você usa Android: Layout_Height = "FILL_PARENT" para as barras, você não está deixando nenhum espaço disponível. (Como eles estão preenchendo o pai.) Como todos os 3 estão definidos para preencher, a altura solicitada é na verdade 3x a altura dos pais, portanto os pesos estão sendo aplicados a um espaço restante negativo. Isso explica o comportamento estranho que você está vendo e por que definir o layout_height para 0px o resolve.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top