En Android API 11+, Google ha lanzado 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 posibles usos de ellos (aparte de algunos ejemplos de IU que se pueden lograr fácilmente con vistas / diseños simples)?
Mi pregunta es sobre fragmentos:
Preguntas adicionales:
# 1 y # 2 ¿Cuáles son los propósitos de usar un fragmento y cuáles son las ventajas y desventajas de usar fragmentos en comparación con el uso de actividades / vistas / diseños?
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 versiones posteriores. Déjame explicarlo;
El ActionBar
. Si desea que las pestañas estén arriba para navegar por su aplicación, verá rápidamente que la ActionBar.TabListener
interfaz le brinda FragmentTransaction
un argumento de entrada para el onTabSelected
método. Probablemente podría ignorar esto y hacer otra cosa e inteligente, pero estaría trabajando contra la API, no con ella.
Las FragmentManager
manijas se «vuelven» para ti de una manera muy inteligente. Volver no significa volver a la última actividad, como ocurre con las actividades habituales. Significa volver al estado del fragmento anterior.
Puede usar el cool ViewPager
con a FragmentPagerAdapter
para crear interfaces de deslizamiento. El FragmentPagerAdapter
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 Fragments cuando intente crear aplicaciones para teléfonos y tabletas. Dado que los fragmentos están tan vinculados con las API de Honeycomb +, también querrá usarlos en teléfonos para reutilizar el código. Ahí es donde la biblioteca de compatibilidad resulta útil.
Incluso podría y debería usar fragmentos para aplicaciones destinadas solo a teléfonos. Si tiene en mente la portabilidad. Utilizo ActionBarSherlock
y las bibliotecas de compatibilidad para crear aplicaciones de "apariencia ICS", que se ven iguales desde la versión 1.6. Obtiene las últimas funciones como ActionBar
, con pestañas, desbordamiento, barra de acción dividida, visor, etc.
Bono 2
La mejor forma de comunicarse entre fragmentos son las intenciones. Cuando presiona algo en un Fragmento, normalmente llamaría StartActivity()
con datos en él. La intención se transmite a todos los fragmentos de la actividad que inicias.
No estoy seguro de a qué video (s) te refieres, pero dudo que digan que deberías usar fragmentos en lugar de actividades, porque no son directamente intercambiables. En realidad, hay una entrada bastante detallada en la Guía para desarrolladores, 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 múltiples paneles (principalmente útil en tabletas). La principal desventaja es (alguna) complejidad adicional. Por lo general, puede lograr lo mismo con vistas (personalizadas) de una manera no estándar y menos robusta.
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 la actividad se está ejecutando.
Puede combinar varios fragmentos en una sola actividad para crear una interfaz de usuario de varios paneles.
Un fragmento se puede utilizar en múltiples actividades.
El ciclo de vida del fragmento está estrechamente relacionado con el ciclo de vida de su actividad de host.
Cuando la actividad está en pausa, también se detendrán todos los fragmentos disponibles en la actividad.
Un fragmento puede implementar un comportamiento que no tiene ningún componente de interfaz de usuario.
Se agregaron fragmentos a la API de Android en Android 3 (Honeycomb) con la versión 11 de la API.
Para obtener más detalles, visite el sitio oficial, Fragmentos .
Esta es información importante que encontré en fragmentos:
Históricamente, cada pantalla en una aplicación de Android se implementó como una actividad separada. Esto crea un desafío al pasar información entre pantallas porque el mecanismo de intención de Android no permite pasar un tipo de referencia (es decir, un objeto) directamente entre actividades. En su lugar, el objeto debe ser serializado o debe estar disponible una referencia accesible globalmente.
Al hacer de cada pantalla un Fragmento separado, este dolor de cabeza por el paso de datos se evita por completo. Los fragmentos siempre existen dentro del contexto de una Actividad determinada y siempre pueden acceder a esa Actividad. Al almacenar la información de interés dentro de la Actividad, el Fragmento de cada pantalla puede simplemente acceder a la referencia del objeto a través de la Actividad.
Fuente: https://www.pluralsight.com/blog/software-development/android-fragments
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 varios paneles, páginas desplazables, diálogos, etc. (todos 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:
Los fragmentos son de especial utilidad 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 seguir teniendo acceso al cajón de navegación.
Si hubiera utilizado una actividad, habría tenido que mantener el cajón en todas las actividades, lo que hace que el código sea redundante. Este es un uso interesante de un fragmento.
Soy nuevo en Android y todavía creo que un fragmento es útil de esta manera.
Sé que esto ya se discutió a muerte, pero me gustaría agregar algunos puntos más:
Los fragmentos se pueden usar para completar mensajes de correo electrónico Menu
y pueden manejar los MenuItem
clics por sí mismos. Por lo tanto, brinda más opciones de modulación para sus actividades. Puede hacer cosas de ContextualActionBar y demás sin que su Actividad lo sepa y básicamente puede desacoplarlas de las cosas básicas que maneja su Actividad (Navegación / Configuración / Acerca de).
Un Frag padre con Frags hijo puede brindarle más opciones para modular sus componentes. Por ejemplo, puede intercambiar fácilmente Frags, poner nuevos Frags dentro de un Pager o eliminarlos, reorganizarlos. Todo sin que tu Actividad sepa nada al respecto, solo se centra en las cosas de nivel superior.
1.¿Fines de usar un fragmento?
Los fragmentos viven dentro de la actividad y tienen:
Piense en Fragments como una subactividad de la actividad principal a la que pertenece, no puede existir por sí misma y se puede llamar / reutilizar una y otra vez. Espero que esto ayude :)
Un fragmento vive dentro de una actividad, mientras que una actividad vive por sí misma.
Agregando a las respuestas anteriores, lo diré usando el ejemplo de una aplicación que lancé en Play Store.
Esta fue la primera aplicación que desarrollé cuando aprendí a usar Android, por lo tanto, solo trabajé con actividades. Creo que hay varias páginas de actividades. La mayoría de ellas tenían contenido que podía reutilizarse en otras páginas, pero terminé con una página de actividad separada durante casi cada clic en la aplicación. Una vez que aprendí los fragmentos, me di cuenta de que todos los reutilizables podían implementarse y separar fragmentos y usarse con muy pocas actividades. Es posible que mi usuario no vea ninguna diferencia, pero se puede hacer lo mismo con un código menor, además de que los fragmentos son livianos, además de la reutilización y modularidad que ofrecen.
La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.
Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.
Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.
Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.
Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
Si este tráiler de pesadilla de la temporada más reciente de Great British Bake Off te asustó y te hizo no volver a ver el programa, es posible que tengas suerte: PBS no ha decidido si se transmitirá o no la última temporada en los Estados Unidos. actualización, para aquellos que no siguen sin aliento este tipo de drama de nicho: el presentador Paul Hollywood y la hermosa carpa llena de batidoras de colores pastel y cuadros se trasladaron de la BBC al Canal 4; Mary Berry, Sue Perkins y Mel Giedroyc renunciaron.
Foto: Netflix Oh, Hello On Broadway (Netflix): Después de llegar a Broadway el año pasado, los dos locos del Upper West Side interpretados por John Mulaney y Nick Kroll finalmente llegaron a Netflix. El especial consta del espectáculo en el escenario, algunos momentos entre bastidores y un invitado muy especial de “Too Much Tuna”.
¿Quiere probar un cepillo de dientes Sonicare sin gastar mucho dinero en uno de sus modelos favoritos de gama alta? Puede comprar un kit de la Serie 2 o Serie 3 por tan solo $ 30 hoy en Amazon. Haga clic aquí para ver la lista completa de modelos elegibles y tenga en cuenta que se descontarán $ 10 adicionales en su carrito.
Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.
El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.
Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon
El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.
El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".
Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.
Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.