Quais são as diferenças entre LinearLayout, RelativeLayout e AbsoluteLayout?

Respostas:

213

LinearLayout significa que você pode alinhar as visualizações uma por uma (vertical / horizontalmente).

RelativeLayout meios baseados na relação de pontos de vista de seus pais e outros pontos de vista.

ConstraintLayout é semelhante a um RelativeLayout por usar relações para posicionar e dimensionar widgets, mas possui flexibilidade adicional e é mais fácil de usar no Editor de Layout.

WebView para carregar páginas html, estáticas ou dinâmicas.

FrameLayout para carregar um filho acima do outro, como cartões dentro de um quadro, podemos colocar um acima do outro ou em qualquer lugar dentro do quadro.

descontinuado - AbsoluteLayout significa que você deve fornecer a posição exata onde a visualização deve estar.

Para mais informações, consulte este endereço https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts

Ganapathy C
fonte
2
Verifique também este link, cara .. mobiforge.com/designing/story/…
Ganapathy C
2
O AbsoluteLayout está obsoleto!
usar o seguinte
3
@ Frite eu respondi isso antes de 2 anos. Por favor, leia a pergunta.
precisa
Aparentemente, AbsoluteLayoutestá obsoleto por um motivo; se o conteúdo não se encaixa, ele lança aleatoriamente as coisas. Você está melhor com LinearLayoutae definindo todos os seus preenchimentos para 0.
EpicPandaForce
50

Definições:

  • Layout do quadro: Ele foi projetado para bloquear uma área na tela para exibir um único item.
  • Layout linear: um layout que organiza seus filhos em uma única coluna ou uma única linha.
  • Layout relativo: esse layout é um grupo de visualizações que exibe visualizações filho em posições relativas.
  • Layout da tabela: um layout que organiza seus filhos em linhas e colunas.

Mais Informações:

FrameLayout

O FrameLayout foi projetado para bloquear uma área na tela para exibir um único item. Geralmente, o FrameLayout deve ser usado para manter uma única exibição filho, porque pode ser difícil organizar as exibições filho de uma maneira escalável para diferentes tamanhos de tela sem que os filhos se sobreponham. No entanto, você pode adicionar vários filhos a um FrameLayout e controlar sua posição no FrameLayout atribuindo gravidade a cada filho, usando o android:layout_gravityatributo

As visualizações filho são desenhadas em uma pilha, com o filho adicionado mais recentemente no topo. O tamanho do FrameLayout é o tamanho do seu filho maior (mais o preenchimento), visível ou não (se o pai do FrameLayout permitir).

RelativeLayout

Um RelativeLayout é um utilitário muito poderoso para projetar uma interface com o usuário, pois pode eliminar grupos de visualizações aninhadas e manter sua hierarquia de layout plana, o que melhora o desempenho. Se você estiver usando vários grupos LinearLayout aninhados, poderá substituí-los por um único RelativeLayout.

(Documentos atuais aqui )

TableLayout

Um TableLayout consiste em vários TableRowobjetos, cada um definindo uma linha (na verdade, você pode ter outros filhos, que serão explicados abaixo). Os contêineres TableLayout não exibem linhas de borda para suas linhas, colunas ou células. Cada linha possui zero ou mais células; cada célula pode conter um objeto de exibição. A tabela possui tantas colunas quanto a linha com mais células. Uma tabela pode deixar as células vazias. As células podem abranger colunas, como podem em HTML.

A largura de uma coluna é definida pela linha com a célula mais larga nessa coluna.


Nota : O layout absoluto está obsoleto.

Devrath
fonte
4

LinearLayout: um layout que organiza seus filhos em uma única linha horizontal ou vertical. Ele cria uma barra de rolagem se o comprimento da janela exceder o comprimento da tela. Isso significa que você pode alinhar as visualizações uma a uma (vertical / horizontalmente).

RelativeLayout: permite especificar o local dos objetos filhos em relação um ao outro (filho A à esquerda do filho B) ou ao pai (alinhado à parte superior do pai). É baseado na relação de pontos de vista de seus pais e outros pontos de vista.

WebView: para carregar páginas html, estáticas ou dinâmicas.

Para mais informações, consulte este link: http://developer.android.com/guide/topics/ui/layout-objects.html

Raghvendra Tolia
fonte
4

LinearLayout - No LinearLayout, as vistas são organizadas na orientação vertical ou horizontal.

RelativeLayout - RelativeLayout é muito mais complexo que LinearLayout, portanto, fornece muito mais funcionalidades. As visualizações são colocadas, como o nome sugere, uma em relação à outra.

FrameLayout - ele se comporta como um único objeto e suas visualizações filho são sobrepostas. FrameLayout assume o tamanho de acordo com o maior elemento filho.

Layout do coordenador - Este é o ViewGroup mais poderoso introduzido na biblioteca de suporte do Android. Ele se comporta como FrameLayout e possui muitas funcionalidades para coordenar entre as visualizações filho, por exemplo, botão flutuante e snackbar, Barra de Ferramentas com exibição rolável.

Tulsi
fonte
2

Ótima explicação aqui:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout organiza elementos lado a lado na horizontal ou na vertical.

O RelativeLayout ajuda a organizar seus elementos da interface do usuário com base em regras específicas. Você pode especificar regras como: alinhar isso à borda esquerda do pai, colocá-lo à esquerda / direita desses elementos etc.

AbsoluteLayout é para posicionamento absoluto, ou seja, você pode especificar coordenadas exatas para onde a visualização deve ir.

FrameLayout permite posicionamentos de vistas ao longo do eixo Z. Isso significa que você pode empilhar seus elementos de exibição um acima do outro.

taha027
fonte