No Android, quando o layout dos widgets, qual é a diferença entre fill_parent
( match_parent
no nível 8 da API e superior) e wrap_content
?
Existe alguma documentação para onde você pode apontar? Estou interessado em entender muito bem.
android
layout
user-interface
pupeno
fonte
fonte
fill_parent
nome foi renomeadomatch_parent
no API Level 8 e superior.Respostas:
Qualquer atributo pode ser aplicado ao tamanho horizontal ou vertical do View (controle visual). É usado para definir um tamanho de Visualização ou Layouts com base no conteúdo ou no tamanho do layout pai, em vez de especificar explicitamente uma dimensão.
fill_parent
(descontinuado e renomeadoMATCH_PARENT
no nível 8 da API e superior)Definir o layout de um widget como fill_parent forçará a expansão para ocupar o espaço disponível no elemento de layout em que foi colocado. É aproximadamente equivalente a definir o estilo de dock de um Controle de Formulário do Windows
Fill
.A configuração de um layout ou controle de nível superior como fill_parent forçará a exibição da tela inteira.
wrap_content
Definir o tamanho de uma visualização como wrap_content forçará a expansão apenas o suficiente para conter os valores (ou controles filho) que ela contém. Para controles - como caixas de texto (TextView) ou imagens (ImageView) - isso envolverá o texto ou a imagem exibida. Para elementos de layout, ele será redimensionado para caber nos controles / layouts adicionados como filhos.
É aproximadamente o equivalente a definir a
Autosize
propriedade de um Controle de Formulário do Windows como True.Documentação Online
Há alguns detalhes na documentação do código do Android aqui .
fonte
fill_parent
(descontinuado) =match_parent
A borda da visualização filho se expande para corresponder à borda da visualização pai.
wrap_content
A borda da exibição filho envolve confortavelmente seu próprio conteúdo.
Aqui estão algumas imagens para tornar as coisas mais claras. O verde e o vermelho são
TextViews
. O branco é umaLinearLayout
demonstração.Todo
View
(aTextView
, anImageView
, aButton
, etc.) precisa definir owidth
e oheight
da exibição. No arquivo de layout xml, pode ser assim:Além de definir a largura e a altura como
match_parent
ouwrap_content
, você também pode defini-los com algum valor absoluto:Geralmente, isso não é tão bom, porque não é tão flexível para dispositivos de tamanhos diferentes. Depois de entender
wrap_content
ematch_parent
, a próxima coisa a aprender élayout_weight
.Veja também
XML para imagens acima
Vertical LinearLayout
Horizontal LinearLayout
Nota
A explicação nesta resposta assume que não há margem ou preenchimento . Mas, mesmo que exista, o conceito básico ainda é o mesmo. A borda / espaçamento da vista é apenas ajustada pelo valor da margem ou preenchimento.
fonte
fill_parent
fará com que a largura ou altura do elemento seja tão grande quanto o elemento pai, ou seja, o contêiner.wrap_content
fará com que a largura ou a altura sejam tão grandes quanto necessárias para conter os elementos dentro dela.Clique aqui para referência do ANDROID DOC
fonte
fill_parent
:Um componente é organizado e o layout
fill_parent
será obrigatório para expandir para preencher os membros da unidade de layout, tanto quanto possível no espaço. Isso é consistente com a propriedade dockstyle do controle do Windows. Um layout ou controle superior definidofill_parent
o forçará a ocupar a tela inteira.wrap_content
Configurar uma visualização do tamanho de
wrap_content
será forçado a visualizar é expandido para mostrar todo o conteúdo. Os controles TextView e ImageView , por exemplo, estão configurados parawrap_content
exibir todo o texto e imagem internos. Os elementos do layout alteram o tamanho de acordo com o conteúdo. Configure uma exibição do tamanho do atributo Autosizewrap_content
aproximadamente equivalente a definir um controle do Windows para True.Para obter detalhes, confira este link: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
fonte