Pregunta

Siempre he estado usando RelativeLayout cada vez que necesitaba un contenedor Vista, debido a su flexibilidad, incluso si sólo quería pantalla algo realmente sencillo.

¿Está bien para hacerlo, o debería intentar usar un LinearLayout en cuanto pueda, desde el punto de vista de rendimiento / buenas prácticas?

Gracias!

¿Fue útil?

Solución

En una charla en Google I / O 2013 (Visto escritura de encargo para Android), Romain individuo aclaró el malentendido causado que todo el mundo para empezar a utilizar RelativeLayouts para todo. Un RelativeLayout siempre tiene que hacer dos pases medida. En general, es insignificante el tiempo que su jerarquía de vistas es simple. Pero si su jerarquía es compleja, haciendo un pase de medida adicional podría potencialmente ser bastante costoso. También si RelativeLayouts nido, se obtiene un algoritmo de medición exponencial.

https://www.youtube.com/watch?v=NYtB6mlu7vA&t=1m41s

https://www.youtube.com/watch?v=NYtB6mlu7vA&t=38m04s

Otros consejos

A menos que estés que pone a cabo una gran cantidad de puntos de vista (por ejemplo, en un ListView), el rendimiento de elegir entre LinearLayout o RelativeLayout es insignificante. Recoger lo que sea más cómodo de usar para el trabajo, y la preocupación por el rendimiento sólo cuando es necesario.

Y esto es lo que los documentos oficiales sobre Creación de disposiciones eficientes dice sobre el rendimiento de RelativeLayout y LinearLayout:

  

Cumplir con las características básicas es   por desgracia no es el más eficiente   manera de crear interfaces de usuario. UN   ejemplo común es el abuso de   LinearLayout, lo que conduce a una   la proliferación de puntos de vista en la vista   jerarquía. Cada vista - o peor,   cada controlador de distribución - que se agrega a   su aplicación tiene un costo:   inicialización, el diseño y el dibujo   más lento. El pase de diseño puede ser   especialmente caro cuando nido   varios LinearLayout que utilizan el   parámetro de peso, lo que requiere la   niño a medir dos veces.

RelativeLayout es más eficaz que LinearLayout.

aquí :

  

Es un error común que el uso de las estructuras básicas de diseño conduce a la mayoría de los diseños eficientes. Sin embargo, cada widget y el diseño que se agrega a su aplicación requiere la inicialización, el diseño y el dibujo. Por ejemplo, el uso de instancias anidadas de LinearLayout puede conducir a una jerarquía de vistas excesivamente profunda. Además, anidación varios casos de LinearLayout que utilizan el parámetro layout_weight pueden ser especialmente caro como las necesidades de cada niño a medir dos veces. Esto es particularmente importante cuando la disposición se infla repetidamente, tal como cuando se utiliza en un ListView o GridView.

2018 UPDATE: En la versión N de Android, la ConstraintLayout clase proporciona una funcionalidad similar a RelativeLayout, pero a un costo significativamente menor. Es muy potente controlador de distribución y que se debe utilizar siempre que sea necesario para construir una interfaz gráfica de usuario compleja.

Puede probar

<LinearLayout>
       <ViewPager/><!--Loading images from net, it is very good as a testing case.-->
       <ViewPagerIndicator/>
       <TextView/> <!--Show some info about page-->
</LinearLayout>

<RelativeLayout>           
       <ViewPager/><!--Loading images from net, it is very good as a testing case.-->
       <ViewPagerIndicator below="id of ViewPager"/>
       <TextView below="id of ViewPagerIndicator"/> <!--Show some info about page-->
</RelativeLayout>

Usted encontrará que hay una gran cantidad de diferentes, si sus páginas Carga de algunas imágenes de Internet. En este caso el LinearLayout es 100% mejor que RelativeLayout nunca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top