PDA

Ver la Versión Completa : [ CONSULTA ] Layout encima


pablogarcia013
07/03/13, 10:18:29
Hola vengo con una dudilla que seguramente se facil pero no lo consigo.

tengo un 2 layout uno visible en la parte de arriba del activity y otro que esta invisible, lo que quiero es que al hacerlo visible aparezca con una animacion (translateAnimation) y se posicione justo debajo. Mi problema es que el segundo layaout que es el que quiero mostrar aparece encima del primero y al final de la animacion se posiciona bien, pero me gustaria que pase por debajo, como si apareciera. Creo que esto se soluccionaria declarando primero el segundo layout y despues el primero pero si lo hago asi no funciona y se peta el programa.
A lo mejor tambien se soluccionaria dandole algun tipo de prioridad? y si es asi como se haria?
Muchas gracias!

kriogeN
07/03/13, 12:50:52
Justo acabo de terminar en este mismo momento una cosa parecida a lo que quieres hacer tú, he tenido que hacer una chapuza del 15 porque no conseguía el efecto que quería y además me pasaba lo que te pasa a ti.

Lo curioso es que en GB si me funciona perfecto, pero en JB no. Debe ser algún cambio introducido en HoneyComb, porque ahí cambiaron todo lo que tiene que ver con animaciones.

Prueba usando LayoutAnimation en lugar de Animation, es la solución más fácil pero el efecto que hace no me termina de convencer.

Aquí ejemplo:

layout.setLayoutAnimation(new LayoutAnimationController(animacion));
layout.startLayoutAnimation();

pablogarcia013
07/03/13, 13:07:40
Que coincidencia!
ya lo probe y como dices tu el efecto no me convence, es como que el layout aparece y los elementos que tiene dentro vienen de arriba hasta la posicion.

de todas maneras es un poco raro que declarando el layout2 encima del layout1 de error..

kriogeN
07/03/13, 14:48:36
Añade un 0 como segundo parámetro al LayoutAnimationController y el efecto es más parecido al Animation normal, pero sigue sin convencerme del todo:

layout.setLayoutAnimation(new LayoutAnimationController(animacion,0));
layout.startLayoutAnimation();

pablogarcia013
11/03/13, 09:35:29
Lo he probado y como dices tu, no termina de convencer!

Muchas gracias :)

kriogeN
11/03/13, 09:56:23
de todas maneras es un poco raro que declarando el layout2 encima del layout1 de error..

Lo hace bien, aparece layout2 encima del layout1. Pero lo que no funcionan bien son las animaciones, simplemente de pronto aparece o desaparece. No hace el efecto de aparecer o desaparecer.

Yo lo he solucionado con una super chapuza usando un ViewFlipper. A ver si alguien puede darte alguna solución mejor que funcione bien sin tener que hacer una chapuza.