viewholder studio reuse pattern other layouts example android include viewstub

studio - merge android



Diferencia entre<include> y<ViewStub> en android (4)

¿Cuáles son las diferencias entre la etiqueta </ include> y la etiqueta </ ViewStub> y cuál es preferible al diseñar el diseño?

Gracias,
Venu


Compartir y reutilizar diseños es muy fácil con Android gracias a la etiqueta, a veces incluso es demasiado fácil y puede terminar con interfaces de usuario que contienen una gran cantidad de vistas, algunas de las cuales se usan muy poco. Afortunadamente, Android ofrece un widget muy especial llamado ViewStub, que le ofrece todos los beneficios sin contaminar su interfaz de usuario con vistas poco utilizadas.

Un ViewStub es una vista tonta y ligera. No tiene dimensión, no dibuja nada y no participa en el diseño de ninguna manera. Esto significa que ViewStub es muy barato de inflar y muy económico de mantener en una jerarquía de vista. Un ViewStub se puede describir mejor como un include perezoso. El diseño al que hace referencia una ViewStub se infla y agrega a la interfaz de usuario solo cuando así lo decida.



Otra diferencia importante está relacionada con el inflado del diseño. con esto no es posible cambiar el diseño ya estático inflado en XML, es necesario reemplazar la vista y establecer programáticamente todos los parámetros de diseño. Con esto es posible definir (por ej.) Alto, ancho, etc. e inflar diferentes diseños en tiempo de ejecución


<Include /> solo incluirá los contenidos xml en su archivo xml base como si todo fuera solo un gran archivo. Es una buena manera de compartir partes de diseño entre diferentes diseños.

El <ViewStub /> es un poco diferente porque no está incluido directamente, y se cargará solo cuando realmente lo use / lo necesite, es decir, cuando establezca su visibilidad en VISIBLE (realmente visible) o INVISIBLE (aún no visible, pero su tamaño no es 0 más). Es una buena optimización porque puede tener un diseño complejo con montones de pequeñas vistas o encabezados en cualquier lugar, y aún así tener su Actividad cargada muy rápido. Una vez que use una de esas vistas, se cargará.