13

tengo que hacer 2 pantallas con animación personalizada, como se explica a continuación:¿Es posible hacer esta animación de pantalla de Android con un ViewPager?

 

      Screen 1         Screen 2 
-----------------------------    ------------------------------ 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|  List 1  | List2 | ---------> | List 3 |  List 4   | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
|     |   |   |  |      | 
-----------------------------    ------------------------------ 

  • usuario hace mucho toque en un elemento de la lista 1 y se desliza de izquierda a derecha.
  • La vista que contiene la Lista 1 se mueve de izquierda a derecha (hasta el final de la pantalla) y se desvanece. La pantalla 2 se muestra.

¿Es posible hacer esta animación usando ViewPager? Si es así, ¿cómo?

Me gustaría hacer esto a través de ViewPager porque estoy usando Fragment s bastante extensamente y he implementado muchas pantallas como fragmentos ya.

Si alguien necesita una aclaración sobre la animación o la interfaz de usuario, hágamelo saber.

Actualización: Pude implementar ambas pantallas en una sola actividad que he explicado parcialmente here. Puedo implementar lo mismo en un solo fragmento. Pero ser capaz de implementar como Fragment s diferentes en un ViewPager todavía sería útil.

+1

¿Puede darme el xml de la vista para que pueda experimentar? Tengo una solución simple y rápida, pero prefiero probarla. Tienes 4 listas de lista? No lo entendí bien –

Respuesta

3

ViewPager, yo también, parece excesivo. A menos que quiera agregar más pantallas más tarde o algún otro requisito. Para estas pantallas simples, puedes hacerlo con ActivityAnimations. Si coloca Pantalla1 y Pantalla2 en una Actividad separada, puede animar las Actividades utilizando estilos simples. No necesita código, simplemente defina los estilos Entrar y Salir para sus actividades, y se ejecutarán.

Por lo tanto, a menos que tenga una razón más para utilizar el ViewPager, se puede lograr el mismo efecto mediante la siguiente (no probado):

Android Manifest.xml

<activity android:name=".Screen1" android:theme="@style/Animated"></activity> 
<activity android:name=".Screen2"></activity> 

Su themes.xml

<resources> 
    <style name="Animated"> 
     <item name="android:windowAnimationStyle">@style/Animation.ScreenAnimation</item> 
    </style> 
</resources> 

por último, en su styles.xml

<style name="Animation"></style> 
<style name="Animation.ScreenAnimation" parent="android:style/Animation.Activity"> 
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item> 
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item> 
    <item name="android:activityCloseEnterAnimation">@anim/slide_out_left</item> 
    <item name="android:activityCloseExitAnimation">@anim/slide_in_right</item> 
</style> 
+0

No creo que esto solucione el problema ya que solo la vista1 necesita ser animada y no toda la pantalla. – 500865

+0

Quizás no entiendo completamente la pregunta, y usted necesita un ViewPager. ¡Buena suerte! – Entreco

2

He utilizado con éxito ListViews verticales dentro de ViewPagers. ¿Qué le parece probar una vista de lista de desplazamiento horizontal dentro de su ViewPager?

Cuestiones relacionadas