69

¿Cuáles son las ventajas de RelativeLayout sobre LinearLayout en android? Para un diseño en particular, ¿cuál preferiría y cuál es la razón detrás de eso?LinearLayout vs RelativeLayout

¿Es (RelativeLayout) comparable o similar a HTML <div> ??

+3

Su mejor si su búsqueda su etiqueta de pregunta [LinearLayout vs RelativeLayout] (http://www.google.co.in/search?q=LinearLayout+vs+RelativeLayout&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) en google. – user370305

+0

+1 y hay una muy buena respuesta en este artículo: [Cuándo utilizar LinearLayout vs. RelativeLayout] (http://logc.at/2011/10/18/when-to-use-linearlayout-vs-relativelayout/) – scatmoi

Respuesta

45

Leer this article:

El kit de herramientas de Android interfaz de usuario ofrece varios controladores de distribución que son bastante fáciles de usar y, la mayoría de las veces, sólo tiene las características básicas de estos controladores de distribución para implementar una interfaz de usuario. Lamentablemente, no es la forma más eficiente de crear interfaces de usuario cumplir con las funciones básicas. Un ejemplo común es el abuso de LinearLayout, que conduce a una proliferación de vistas en la jerarquía de vistas. Cada vista, o peor cada administrador de diseño, que agregue a su aplicación tiene un costo: la inicialización, el diseño y el dibujo se vuelven más lentos. El pase de disposición puede ser especialmente costoso cuando anida varios LinearLayout que usan el parámetro weight, que requiere que el niño se mida dos veces ...

En un RelativeLayout, las vistas se alinean con su padre, el RelativeLayout mismo, o otras vistas. Por ejemplo, declaramos que la descripción está alineada con la parte inferior de RelativeLayout y que el título está posicionado encima de la descripción y anclado a la parte superior de los padres. Con la descripción GONE, RelativeLayout no sabe dónde colocar el borde inferior del título. Para resolver este problema, puede usar un parámetro de diseño muy especial llamado alignWithParentIfMissing.

Este parámetro booleano simplemente le dice a RelativeLayout que use sus propios bordes como anclajes cuando falta un objetivo de restricción. Por ejemplo, si posiciona una vista a la derecha de una vista GONE y establece alignWithParentIfMissing en verdadero, RelativeLayout anclará la vista a su borde izquierdo. En nuestro caso, usar alignWithParentIfMissing hará que RelativeLayout alinee la parte inferior del título con su propia parte inferior.

... la diferencia será mucho más importante cuando se utiliza un diseño de este tipo para cada elemento de un ListView por ejemplo ...

+0

https://www.crittercism.com/blog/android-performance-tip-1/ –

14

Por el nombre que puede llegar a saber LinearLayout agrega la vista de forma lineal ya sea vertical u horizontal por la orientación establecida por usted. Se agregarán vistas una tras otra, lo que dependerá de los requisitos del diseño. Y RelativeLayout agrega una vista relacionada entre sí, no es necesario declarar la orientación en RelativeLayout.

Como, por ejemplo, desea agregar dos TextView s uno debajo de otro modo va a agregar primera TextView y se refieren al segundo TextView con el primer TextView añadiendo android:layout_below="first textview's id" en el archivo XML. De esta manera puede tratar con RelativeLayout.

Cuestiones relacionadas