tener - instalar la misma app varias veces en android
¿Cómo incluir un diseño dos veces en Android? (4)
¿Hay algún mecanismo para hacer esto?
Crea una View
personalizada Aquí hay un proyecto donde tengo un widget personalizado ColorMixer
, por ejemplo. Puede incluir varios de tales ColorMixers
de ColorMixers
en un diseño de actividad, si así lo desea. Cada uno puede tener sus propios parámetros para adaptar su funcionamiento.
El elemento <include />
Android le permite incluir otros diseños XML. Útil para un encabezado común en varias actividades.
Pero, ¿qué sucede si desea incluir un diseño varias veces en la misma vista? Por ejemplo, tengo un diseño cuidadosamente diseñado que quiero mostrar tres veces en mi opinión. Cada una de esas instancias necesitaría valores diferentes. Como el include
es básicamente un XML para tomar y pegarlo aquí , necesitaría algo más poderoso.
¿Hay algún mecanismo para hacer esto?
(¿Me expliqué correctamente?)
Otra forma de hacerlo podría ser establecer el diseño de "plantilla" en un xml e inflarlo con LayoutInflater y agregarlo a su vista tantas veces como sea necesario e insertar allí los valores personalizados en cada uno. Here hay un ejemplo para Crear una vista de pan tostado personalizado con el inflador de diseño.
Puede usar android:id
para especificar el id de la vista raíz del diseño incluido; también anulará la identificación del diseño incluido si se define uno. Del mismo modo, puede anular todos los parámetros de diseño.
Según el android:id
proporcionado, puede obtener la sección por id, y luego puede obtener elemento por id en función de la sección que acaba de recuperar. De esta forma, podrá buscar todas las vistas secundarias con los mismos identificadores, en cada una de las vistas de id diferentes padres en dos pasos.
Una publicación de blog en http://www.coboltforge.com/2012/05/tech-stuff-layout/ explica exactamente ese problema (el mismo formato XML incluido varias veces) y cómo resolverlo.
Editar
Cuando busca por ID siempre encuentra los primeros artículos, por lo que los segundos widgets están ocultos.
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 );