¿Cómo incluir un diseño dos veces en Android?

El elemento <include /> Android le permite incluir otros diseños XML. Útil para una cabecera común a través de varias actividades.

Pero, ¿qué pasa si desea incluir un diseño varias veces en la misma vista? Por ejemplo, tengo un diseño cuidadosamente elaborado que quiero mostrar tres veces en mi opinión. Cada uno de esos casos necesitaría valores diferentes. Dado que la include es básicamente una toma que XML y pegar aquí , necesitaría algo más poderoso.

¿Hay algún mecanismo para hacer esto?

(¿Me expliqué correctamente?)

Una entrada de blog en http://www.coboltforge.com/2012/05/tech-stuff-layout/ explica exactamente ese problema (el mismo diseño XML incluido varias veces) y cómo solucionarlo!

Editar

Cuando busca por id, siempre encontrará los primeros elementos, por lo que los segundos widgets se ocultan.

Sin embargo, puede ser resuelto

 <include> -- id1 -- stuff </include> <include> -- id2 -- stuff </include> 

Así que podemos encontrar los subelementos, buscando primero id2 / id1.

 View include_1 = findViewById(R.id.id1); View include_2 = findViewById(R.id.id2); 

y finalmente

 include_2.findViewById(R.id.elementx ); 

¿Hay algún mecanismo para hacer esto?

Cree una View personalizada. Aquí hay un proyecto donde tengo un widget personalizado de ColorMixer , por ejemplo. Usted puede incluir varios de estos ColorMixers en un diseño de actividad, si así lo desea. Cada uno puede tener sus propios parámetros para adaptar su funcionamiento.

Otra manera de ir podría ser la configuración de la "plantilla" de diseño en un xml e inflar con LayoutInflater y añadir a su vista tantas veces como sea necesario e insertar allí los valores personalizados en cada uno. A continuación, se muestra un ejemplo de Creación de una vista personalizada de brindis con el inflador de diseño.

Puede utilizar android:id para especificar el id de la vista raíz del diseño incluido; También anulará el id del diseño incluido si se define uno. Del mismo modo, puede anular todos los parámetros de diseño.

Basado en el android:id proporcionado android:id usted puede conseguir la sección por la identificación, y entonces usted puede otra vez conseguir el elemento por el ID basó en la sección que usted acaba de recuperar. De esta manera, podrá buscar todas las vistas secundarias con ids idénticos en cada padre, con vistas id diferentes en dos pasos.

  • Ejemplo simple de uso de <merge> y <include> en diseños XML de Android
  • ¿Por qué no deberíamos envolver cada diseño de Android XML incluido en un par de <fusion>?
  • Preferencias anidadas.xml
  • ¿Cómo accedo a las vistas dentro del diseño cuando la reutilizo varias veces?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.