¿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.
- ¿Cuál es el propósito de la etiqueta <merge> de Android en los diseños XML?
- Android: ¿Cómo incluir dinámicamente una disposición XML?
- ¿Cómo puedo hacer que varias configuraciones de pantalla diferentes se asignen a un pequeño conjunto de diseños sin tener que duplicar partes de mi XML de diseño?
- Incluya algunas páginas en una página en JQuery móvil
- La característica "include" de diseño no admite la propiedad layout_gravity?
¿Hay algún mecanismo para hacer esto?
(¿Me expliqué correctamente?)
- Incluir no funciona
- NullPointerException lanzado en Eclipse al intentar abrir la vista de Android XML?
- Incluir un TextView y anular el texto
- Importar Facebook SDK en Android Studio 0.5.1
- ¿Es posible sustituir / aplicar estilo en el diseño incluido con la etiqueta <include>?
- Diferencia entre <include> y <ViewStub> en android
- Cómo acceder al botón dentro de "incluir" el diseño
- Encabezado ifaddrs.h no encontrado al compilar SDL para android
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