¿Cuáles son las diferencias entre LinearLayout, RelativeLayout y AbsoluteLayout?

Respuestas:

213

LinearLayout significa que puede alinear las vistas una por una (vertical / horizontalmente).

RelativeLayout significa basado en la relación de puntos de vista de sus padres y otros puntos de vista.

ConstraintLayout es similar a un RelativeLayout en el sentido de que usa relaciones para posicionar y ajustar widgets, pero tiene flexibilidad adicional y es más fácil de usar en el Editor de diseño.

WebView para cargar páginas html, estáticas o dinámicas.

FrameLayout Para cargar el niño uno encima del otro, como tarjetas dentro de un marco, podemos colocar uno encima de otro o en cualquier lugar dentro del marco.

en desuso: AbsoluteLayout significa que debe indicar la posición exacta donde debería estar la vista.

Para obtener más información, consulte esta dirección https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts

Ganapathy C
fuente
2
Compruebe este enlace también amigo .. mobiforge.com/designing/story/…
Ganapathy C
2
AbsoluteLayout está en desuso!
Fry
3
@Fry respondí esto antes de 2 años. Por favor lea la pregunta.
Ganapathy C
Aparentemente AbsoluteLayoutestá en desuso por una razón; Si el contenido no encaja, arroja cosas al azar. Es mejor con LinearLayoutay establecer todos sus rellenos en 0.
EpicPandaForce
50

Definiciones:

  • Diseño del marco: está diseñado para bloquear un área en la pantalla para mostrar un solo elemento.
  • Diseño lineal: un diseño que organiza sus elementos secundarios en una sola columna o una sola fila.
  • Diseño relativo: este diseño es un grupo de vistas que muestra vistas secundarias en posiciones relativas.
  • Diseño de tabla: un diseño que organiza sus elementos secundarios en filas y columnas.

Más información:

FrameLayout

FrameLayout está diseñado para bloquear un área en la pantalla para mostrar un solo elemento. En general, FrameLayout debe usarse para mantener una vista secundaria única, porque puede ser difícil organizar las vistas secundarias de una manera que sea escalable a diferentes tamaños de pantalla sin que los elementos secundarios se superpongan entre sí. Sin embargo, puede agregar varios elementos secundarios a FrameLayout y controlar su posición dentro de FrameLayout asignando gravedad a cada elemento secundario, utilizando el android:layout_gravityatributo

Las vistas secundarias se dibujan en una pila, con el elemento secundario agregado más recientemente en la parte superior. El tamaño de FrameLayout es el tamaño de su elemento secundario más grande (más relleno), visible o no (si el elemento primario de FrameLayout lo permite).

RelativeLayout

Un RelativeLayout es una utilidad muy poderosa para diseñar una interfaz de usuario porque puede eliminar grupos de vistas anidadas y mantener su jerarquía de diseño plana, lo que mejora el rendimiento. Si se encuentra utilizando varios grupos LinearLayout anidados, puede reemplazarlos con un solo RelativeLayout.

(Documentos actuales aquí )

TableLayout

Un TableLayout consta de una serie de TableRowobjetos, cada uno de los cuales define una fila (en realidad, puede tener otros elementos secundarios, que se explicarán a continuación). Los contenedores TableLayout no muestran líneas de borde para sus filas, columnas o celdas. Cada fila tiene cero o más celdas; cada celda puede contener un objeto View. La tabla tiene tantas columnas como la fila con más celdas. Una tabla puede dejar celdas vacías. Las celdas pueden abarcar columnas, como pueden hacerlo en HTML.

El ancho de una columna está definido por la fila con la celda más ancha en esa columna.


Nota : El diseño absoluto está en desuso.

Devrath
fuente
4

LinearLayout: un diseño que organiza a sus hijos en una sola fila horizontal o vertical. Crea una barra de desplazamiento si la longitud de la ventana excede la longitud de la pantalla. Esto significa que puede alinear las vistas una por una (vertical / horizontalmente).

RelativeLayout: Esto le permite especificar la ubicación de los objetos secundarios entre sí (niño A a la izquierda del niño B) o al padre (alineado a la parte superior del padre). Se basa en la relación de puntos de vista de sus padres y otros puntos de vista.

WebView: para cargar páginas html, estáticas o dinámicas.

Para obtener más información, consulte este enlace: http://developer.android.com/guide/topics/ui/layout-objects.html

Raghvendra Tolia
fuente
4

LinearLayout : en LinearLayout, las vistas se organizan en orientación vertical u horizontal.

RelativeLayout : RelativeLayout es mucho más complejo que LinearLayout, por lo tanto, proporciona muchas más funcionalidades. Las vistas se colocan, como su nombre indica, una respecto de la otra.

FrameLayout : se comporta como un solo objeto y sus vistas secundarias se superponen entre sí. FrameLayout toma el tamaño de acuerdo con el elemento secundario más grande.

Diseño del coordinador : este es el ViewGroup más poderoso introducido en la biblioteca de soporte de Android. Se comporta como FrameLayout y tiene muchas funcionalidades para coordinar entre sus vistas secundarias, por ejemplo, botón flotante y snackbar, barra de herramientas con vista desplazable.

Tulsi
fuente
2

Gran explicación aquí:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout organiza los elementos uno al lado del otro, ya sea horizontal o verticalmente.

RelativeLayout lo ayuda a organizar sus elementos de la interfaz de usuario según reglas específicas. Puede especificar reglas como: alinear esto con el borde izquierdo del padre, colocarlo a la izquierda / derecha de estos elementos, etc.

AbsoluteLayout es para un posicionamiento absoluto, es decir, puede especificar coordenadas exactas donde debe ir la vista.

FrameLayout permite ubicaciones de vistas a lo largo del eje Z. Eso significa que puede apilar sus elementos de vista uno encima del otro.

taha027
fuente