¿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.
- Encabezado ifaddrs.h no encontrado al compilar SDL para android
- Ejemplo simple de uso de <merge> y <include> en diseños XML de Android
- Incluir un TextView y anular el texto
- ¿Por qué no deberíamos envolver cada diseño de Android XML incluido en un par de <fusion>?
- NullPointerException lanzado en Eclipse al intentar abrir la vista de Android XML?
¿Hay algún mecanismo para hacer esto?
(¿Me expliqué correctamente?)
- Android: ¿Cómo incluir dinámicamente una disposición XML?
- ¿Cómo accedo a las vistas dentro del diseño cuando la reutilizo varias veces?
- Cómo acceder al botón dentro de "incluir" el diseño
- Diferencia entre <include> y <ViewStub> en android
- Incluir no funciona
- ¿Cuál es el propósito de la etiqueta <merge> de Android en los diseños XML?
- La característica "include" de diseño no admite la propiedad layout_gravity?
- Preferencias anidadas.xml
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.
- Cómo abrir la configuración de Android Phone en un clic de botón en nuestra aplicación para Android
- Admob Memory Leak – evitando usar la actividad vacía