La aplicación en la que estoy trabajando requiere un diseño dinámico que muestre un HorizontalScrollView de perfiles. Un perfil es simplemente un RelativeLayout con una imagen y texto. Como obtengo los datos de un archivo de datos, necesito crear un diseño Relativo para cada uno de los perfiles. Al principio creé cada RelativeLayout programáticamente en un ciclo for y luego lo agregué a la vista principal. Esto funciona, pero no quiero hacerlo de esta manera. Quiero utilizar diferentes archivos de diseño en función del tamaño de la pantalla del dispositivo, etc.Android: ¿Es posible hacer una copia de una Vista?
Entonces pensé. Bueno, ¿y si tuviera un Layout con solo un perfil? Mi código podría obtener ese perfil con findViewById()
y luego crear uno nuevo basado en él. En otras palabras:
// get the layout
profileLayout = (LinearLayout) findViewById(R.id.profileLayout);
// get the first profile in the layout
originalProfile = (RelativeLayout) findViewById(R.id.profile1);
// make copy of profile
temporaryProfile = originalProfile;
// make changes to the this profile and add it back
profileLayout.addView(temporaryProfile);
Por supuesto, esto no funciona porque se trata de Java y temporaryProfile ahora es una referencia a originalProfile. Entonces, ¿hay alguna forma de hacer una copia de este RelativeLayout? Soy consciente de LayoutInflater, pero todavía no entiendo cómo funciona. También hay Object.clone()
.
gracias por la respuesta! –