En Android API 11+, Google lanzó una nueva clase llamada Fragment
.
En los videos, Google sugiere que siempre que sea posible ( enlace1 , enlace2 ), deberíamos usar fragmentos en lugar de actividades, pero no explicaron exactamente por qué.
¿Cuál es el propósito de los fragmentos y algunos usos posibles de ellos (aparte de algunos ejemplos de IU que se pueden lograr fácilmente mediante vistas / diseños simples)?
Mi pregunta es sobre fragmentos:
- ¿Cuáles son los propósitos de usar un fragmento?
- ¿Cuáles son las ventajas y desventajas de usar fragmentos en comparación con el uso de actividades / vistas / diseños?
Preguntas extra:
- ¿Puedes dar algunos usos realmente interesantes para los fragmentos? ¿Cosas que Google no mencionó en sus videos?
- ¿Cuál es la mejor manera de comunicarse entre fragmentos y las actividades que los contienen?
- ¿Cuáles son las cosas más importantes para recordar cuando usas fragmentos? ¿Algún consejo y advertencia de tu experiencia?
android
android-layout
android-fragments
android-activity
android-3.0-honeycomb
desarrollador de Android
fuente
fuente
Respuestas:
Los fragmentos son la solución de Android para crear interfaces de usuario reutilizables. Puede lograr algunas de las mismas cosas usando actividades y diseños (por ejemplo, usando incluye). Sin embargo; los fragmentos están conectados a la API de Android, desde HoneyComb, y hasta. Déjame elaborar;
El
ActionBar
. Si desea pestañas para navegar por su aplicación, verá rápidamente que laActionBar.TabListener
interfaz le ofreceFragmentTransaction
un argumento de entrada para elonTabSelected
método. Probablemente podría ignorar esto y hacer algo más e inteligente, pero estaría trabajando en contra de la API, no con ella.Las
FragmentManager
asas "vuelven" para usted de una manera muy inteligente. Volver no significa volver a la última actividad, como en las actividades regulares. Significa volver al estado del fragmento anterior.Puede usar el cool
ViewPager
con unFragmentPagerAdapter
para crear interfaces de deslizamiento. ElFragmentPagerAdapter
código es mucho más limpio que un adaptador normal y controla las instancias de los fragmentos individuales.Su vida será mucho más fácil si usa Fragmentos cuando intenta crear aplicaciones para teléfonos y tabletas. Dado que los fragmentos están tan vinculados con las API Honeycomb +, también querrá usarlos en los teléfonos para reutilizar el código. Ahí es donde la biblioteca de compatibilidad es útil.
Incluso podría y debería usar fragmentos para aplicaciones destinadas solo a teléfonos. Si tienes portabilidad en mente. Utilizo
ActionBarSherlock
y las bibliotecas de compatibilidad para crear aplicaciones "con aspecto de ICS", que se ven igual desde la versión 1.6. Obtiene las últimas funciones comoActionBar
, con pestañas, desbordamiento, barra de acción dividida, visor, etc.La mejor manera de comunicarse entre fragmentos son los intentos. Cuando presionas algo en un Fragmento, normalmente llamas
StartActivity()
con datos sobre él. La intención se pasa a todos los fragmentos de la actividad que inicias.fuente
No estoy seguro de a qué video (s) se refiere, pero dudo que digan que debe usar fragmentos en lugar de actividades, porque no son directamente intercambiables. En realidad, hay una entrada bastante detallada en la Guía de desarrollo, considere leerla para obtener más detalles.
En resumen, los fragmentos viven dentro de las actividades, y cada actividad puede albergar muchos fragmentos. Al igual que las actividades, tienen un ciclo de vida específico, a diferencia de las actividades, no son componentes de aplicaciones de nivel superior. Las ventajas de los fragmentos incluyen la reutilización de código y la modularidad (por ejemplo, usar la misma vista de lista en muchas actividades), incluida la capacidad de construir interfaces de paneles múltiples (principalmente útiles en tabletas). La principal desventaja es (alguna) complejidad añadida. En general, puede lograr lo mismo con vistas (personalizadas) de una manera no estándar y menos robusta.
fuente
Un Fragmento es una parte de la interfaz de usuario o el comportamiento de una aplicación que se puede colocar en una Actividad que permite un diseño de actividad más modular. No estará mal si decimos que un fragmento es una especie de subactividad.
Los siguientes son puntos importantes sobre un fragmento:
Un fragmento tiene su propio diseño y su propio comportamiento con sus propias devoluciones de llamada del ciclo de vida.
Puede agregar o eliminar fragmentos en una actividad mientras se ejecuta la actividad.
Puede combinar varios fragmentos en una sola actividad para crear una IU de paneles múltiples.
Un fragmento puede usarse en múltiples actividades.
El fragmento del ciclo de vida está estrechamente relacionado con el ciclo de vida de su actividad de acogida.
Cuando la actividad está en pausa, todos los fragmentos disponibles en la actividad también se detendrán.
Un fragmento puede implementar un comportamiento que no tiene un componente de interfaz de usuario.
Se agregaron fragmentos a la API de Android en Android 3 (Honeycomb) con API versión 11.
Para más detalles, visite el sitio oficial, Fragments .
fuente
Esta es información importante que encontré en fragmentos:
Fuente: https://www.pluralsight.com/blog/software-development/android-fragments
fuente
Las actividades son los componentes de pantalla completa en la aplicación con la barra de herramientas, todo lo demás son preferiblemente Fragmentos. Una actividad principal de pantalla completa con una barra de herramientas puede tener múltiples paneles, páginas desplazables, cuadros de diálogo, etc. (todos los fragmentos), a todos los cuales se puede acceder desde el padre y comunicarse a través del padre.
Ejemplo:
Actividad A, Actividad B, Actividad C:
vs
Actividad A, Fragmento 1, Fragmento 2, Fragmento 3:
fuente
Los fragmentos son de uso particular en algunos casos, como cuando queremos mantener un cajón de navegación en todas nuestras páginas. Puede inflar un diseño de marco con cualquier fragmento que desee y aún tener acceso al cajón de navegación.
Si hubiera utilizado una actividad, habría tenido que mantener el cajón en todas las actividades que generan código redundante. Este es un uso interesante de un fragmento.
Soy nuevo en Android y sigo pensando que un fragmento es útil de esta manera.
fuente
Sé que esto ya se discutió hasta la muerte, pero me gustaría agregar algunos puntos más:
Los frags se pueden usar para rellenar
Menu
sy pueden manejarMenuItem
clics por su cuenta. Dando así más opciones de modulación para sus actividades. Puede hacer cosas de ContextualActionBar y así sucesivamente sin que su Actividad lo sepa y básicamente puede desacoplarlo de las cosas básicas que maneja su Actividad (Navegación / Configuración / Acerca de).Un Frag principal con Frags secundarios puede brindarle más opciones para modular sus componentes. Por ejemplo, puede intercambiar Frags fácilmente, colocar Frags nuevos dentro de un Buscapersonas o eliminarlos, reorganizarlos. Todo sin que su Actividad sepa nada al respecto, solo se centra en las cosas de nivel superior.
fuente
Fragments vive dentro de la Actividad y tiene:
Piense en los Fragmentos como una sub-actividad de la actividad principal a la que pertenece, no puede existir por sí misma y puede ser llamada / reutilizada una y otra vez. Espero que esto ayude :)
fuente
1.Propósitos de usar un fragmento?
fuente
Un fragmento vive dentro de una actividad, mientras que una actividad vive sola.
fuente