2012-01-09 11 views
5

Estoy compilando y la aplicación de Android debe seguir pasos como un asistente.Android: cuál es la forma correcta de implementar un asistente con una animación entre los pasos

estructura actual:

Por el momento estoy usando una actividad con views.xml independiente para cada paso, entonces yo estoy usando setContentView(activeStep) para visualizar el paso activo.

Me encontré con algunas dificultades al intentar animar entre los pasos. He utilizado el siguiente código:

LayoutInflater inflater = getLayoutInflater(); 
View view = inflater.inflate(activeStep, null, false); 
view.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.slide_in)); 
setContentView(view); 

El resultado: la primera vista había desaparecido y el nuevo animado, no una transición suave.

Mi objetivo es animar a ambos puntos de vista, uno se desliza hacia fuera el otro en

. Pregunta: ¿Es posible hacerlo con mi estructura actual (recordatorio: una actividad, muchos puntos de vista) o debería tratar a cada paso como una actividad separada?

+1

¿Ha pensado en utilizar ViewSwitcher? http://www.youtube.com/watch?v=mGwG8-chUEM para verlo y http://www.ctctlabs.com/index.php/blog/detail/android_dont_overlook_viewswitcher/ para obtener ayuda – TryTryAgain

+0

Gracias por la respuesta, yo lo intentaré y le dejaré saber –

Respuesta

3

supongo que no es más la forma de implementar el progreso paso con la animación, aquí es cómo lo hice:

private static ViewAnimator viewAnimator; 

public void onCreate(Bundle savedInstanceState) { 
     viewAnimator = new ViewAnimator(this); 
     View step1 = View.inflate(activity, R.layout.step_1, null); 
     View step2 = View.inflate(activity, R.layout.step_2, null); 
     View step3 = View.inflate(activity, R.layout.step_3, null); 
     viewAnimator.addView(step1); 
     viewAnimator.addView(step2); 
     viewAnimator.addView(step3); 
     viewAnimator.setInAnimation(activity, R.anim.slide_in); 
     viewAnimator.setOutAnimation(activity, R.anim.slide_out); 
     setContentView(viewAnimator); 
    } 

luego haciendo clic en un botón que llamo viewAnimator.showNext() y viewAnimator.showPrevious() ViewSwitcher no era bueno para mi propósito , porque solo puede contener 2 vistas a la vez

0

Probablemente sea mejor utilizar un Activity y algunas estructuras diferentes View si cada paso del proceso está relacionado.

Probablemente no deba usar setContentView para cambiar las vistas con cada paso. En su lugar, posiblemente hide o unhide cada elemento, o moverlo fuera de la pantalla.

+0

Creo que voy a ir con la idea ViewSwitcher, pero gracias por la respuesta –

Cuestiones relacionadas