Pregunta Hacer una aplicación tipo asistente en Android


Cuál crees que es la mejor manera de hacer una aplicación tipo asistente (el usuario puede navegar entre las pantallas con un botón al lado y hacia atrás, y cada pantalla tiene que guardar algunos datos del estado) en la plataforma Android.

Principalmente puedo pensar en dos enfoques:

  1. Tener una actividad + vista para cada pantalla y luego hacer que la pantalla cambie al llamar a cada actividad. Lo que hace que esto sea agradable es que puedo usar el botón de respaldo del sistema como mi manejador de respaldo y no tengo que ocuparme de eso, también cada actividad guardará su propio estado.

  2. Tener una actividad y muchas vistas, y cambiar las vistas en cada cambio de pantalla, esto me ayuda a reutilizar más código, pero hace que los estados de almacenamiento sean un desastre.

¿Qué piensas? ¿Cuál es la mejor manera de hacer esto en Android?


29
2018-06-18 15:44


origen


Respuestas:


Sugiero ir con 2 ya que se ajusta a la meta de actividades y puntos de vista. El estado de guardado en este caso es fácil: si usa el patrón MVC, simplemente puede tener un objeto modelo que se transfiere a las vistas. Cada vista tendrá porciones del modelo que puede leer / escribir. No importa dónde se encuentre, el modelo siempre debe tener el estado actual. Si te eliminan, solo guarda el modelo. La restauración funciona automáticamente ya que usted lee desde el modelo cuando muestra cada página.


12
2018-06-18 16:57



Desarrollé una biblioteca liviana de Android, que está construida sobre la ViewPager de Android que puede usarse para crear actividades similares a las de un asistente. Echale un vistazo: WizarDroid.


17
2018-04-01 20:19



He ido con el primer enfoque, ya que parece más natural. Otra aplicación usa ViewFlipper para cambiar de vista, pero eso está lejos de ser algo así como el asistente.


6
2018-06-18 16:47



Creo que 2 es mejor. Ponga cada "página" en una vista y luego alterne entre mostrarlas y ocultarlas. Hace que sea trivial hacer buenas transiciones. ¿Qué estado estás pensando en mantener? El único que no funciona automáticamente sería el foco y creo que probablemente quiera restablecerlo cada vez que cambie de página. También es trivial recuperar algo si crees que es el comportamiento correcto para tu aplicación.

Con 1 puede reutilizar casi todo su código (simplemente defina su propia clase WizardBase), pero creo que las actividades son mucho más lentas (y requieren más memoria) que cambiar de vista.


1
2018-06-18 16:43