Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La actividad de NavigationDrawer está llena de fragmentos de retorno de llamada y lógica de aplicaciones

Se supone que una Activity contiene NavigationDrawer hace malabares con sus fragmentos. Mi problema es que el cajón debe estar disponible en todas las pantallas posibles de la aplicación, lo que hace que mi única actividad MainActivity esté muy llena de fragmentos de código de retorno de llamada y diferentes tipos de lógica de navegación y negocio.

A medida que la aplicación crece, se vuelve más difícil navegar a través de la actividad y he comenzado a pensar en posibles enfoques alternativos. El nuevo enfoque debe mantener el mismo comportamiento visual del original y eliminar el desorden.

  • ¿Cómo puedo encontrar dónde se utiliza un método o una variable en Android Studio (acceso directo)
  • Página de perfil de diseño de material Android
  • Java.lang.IllegalStateException: No se puede cambiar la etiqueta del fragmento
  • ¿Android consigue el timestamp actual?
  • RecyclerView - No hay animación en NotifyItemInsert
  • Xamarin mediaPicker.TakePhotoAsync bloquea la aplicación
  • Aparte de los eventos del cajón de navegación, hay múltiples fragmentos que también contienen lógica de navegación / negocio, que también debe ser manejado por MainActivity. Por ejemplo, un fragmento podría contener 3 o más botones que lanzarían otros fragmentos o realizarían alguna lógica empresarial de preocupación cruzada.

    Así que la cantidad resultante de interfaces de escucha implementado por MainActivity crece y en este momento suma a 20. Usted puede imaginar que no se ve o se sienta bien.

    Creo que podría desacoplar las cosas a múltiples actividades de NavigationDrawer para facilitar el mantenimiento. Sugiere un mayor consumo de recursos y una ligera desviación de los efectos visuales, ya que las nuevas actividades se pondrán en marcha sólo después de cerrarse el cajón contrario al enfoque original que cambia instantáneamente los fragmentos.

    ¿Crees que es una mala idea? ¿Cómo puede ser mejorado? O hay una mejor solución?

    Gracias.

    UPD refinó la descripción.

  • ¿Es necesario llamar al manejador de fallos de bugsense en cada actividad de una aplicación de Android?
  • Android Web-view Error I / cromo: "Uncaught ReferenceError:
  • BitmapFactory.decodeResource devuelve un mapa de bits mutable en Android 2.2 y un mapa de bits inmutable en Android 1.6
  • Actualizar datos en Arrayadapter
  • Cómo hacer página flip / turn / curl efecto en android
  • Pase el evento de movimiento a la Scrollview primaria cuando Listview en la parte superior / inferior
  • 2 Solutions collect form web for “La actividad de NavigationDrawer está llena de fragmentos de retorno de llamada y lógica de aplicaciones”

    Usted dijo, usted tiene solamente una actividad. Por lo tanto, supongo que todas las pantallas son fragmentos en su aplicación. Debido a esto NavDrawer estará disponible en cualquier momento en su aplicación de forma predeterminada.

    No hay necesidad de múltiples actividades con diferentes implementaciones de NavDrawer. Usted podría utilizar una BaseActivity para manejar la implementación del NavDrawer y con la herencia puede usar esto en cada Actividad que quiera, si desea implementar más en el futuro. Esto seguiría los principios de la OOP y conduciría a un código más limpio. Además, el NavDrawer se verá y se comportará de la misma manera en cada Actividad. Cuál es el propósito de ello, tener un menú de navegación para tu aplicación.

    El trabajo de la Actividad, que amplía la BaseActivity, es manejar las transacciones de los Fragmentos y la comunicación con ellos a través de callbacks.

    Con esto la navegación de su aplicación es claramente estructurada y es sin duda el camino a seguir.

    Usted puede seguir este muy agradable tutorial completo que hace algo como esto. Es un poco abrumador en la primera mirada, pero usted puede conseguir la idea básica.

    Yo sugeriría sólo tener una clase NavigationDrawerDelegate que se encarga de toda la lógica de navegación y añadir a sus actividades y sólo delegar a ella. Un ejemplo es muy bien hecho aquí

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.