Mi pregunta es aparte de las obvias diferencias de herencia, ¿cuáles son las principales diferencias entre Fragment
y FragmentActivity
? ¿A qué escenarios se adapta mejor cada clase? Estoy tratando de entender por qué existen estas dos clases ...Diferencia entre Fragmento y FragmentActivity
Respuesta
A Fragment
es una sección de una Activity
, que tiene:
- su propio ciclo de vida
- recibe sus propios eventos de entrada
- puede ser añadido o eliminado, mientras que el
Activity
se está ejecutando.
A Fragment
siempre debe estar incrustado en un Activity
.
Fragments
no forman parte de la API antes de HoneyComb (3.0). Si desea utilizar Fragments
en una aplicación orientada a una versión de plataforma anterior a HoneyComb, debe agregar el Support Package a su proyecto y usar el FragmentActivity
para almacenar su Fragments
. La clase FragmentActivity
tiene una API para tratar con Fragments
, mientras que la clase Activity
, anterior a HoneyComb, no lo hace.
Si su proyecto está dirigido solo a HoneyComb o más nuevo, debe usar Activity
y no FragmentActivity
para contener su Fragments
.
Algunos detalles:
Use android.app.Fragment
con Activity
. Use android.support.v4.app.Fragment
con FragmentActivity
. No agregue el paquete de soporte Fragment
a Activity
, ya que provocará una excepción.
Una cosa a tener cuidado con: FragmentManager
y LoaderManager
tienen versiones de apoyo separados para FragmentActivity:
Si está utilizando un Fragment
en un Activity
(HoneyComb en adelante), llaman
getFragmentManager()
para obtenerandroid.app.FragmentManager
getLoaderManager()
para obtenerandroid.app.LoaderManager
si está utilizando un Fragment
FragmentActivity
en un (pre-HoneyComb), llame a:
getSupportFragmentManager()
para obtenerandroid.support.v4.app.FragmentManager
.getSupportLoaderManager()
para obtenerandroid.support.v4.app.LoaderManager
así, no Qué hacen
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
o
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
También es útil saber es que mientras que un fragmento tiene que ser incrustado en un Activity
no tiene que ser parte del diseño Activity
. Se puede usar como un trabajador invisible para la actividad, sin IU propia.
FragmentActivity es nuestra actividad clásica con compatibilidad de fragmentos, nada más. Por lo tanto, se necesita FragmentActivity, cuando un Fragmento se adjuntará a la Actividad.
Well Fragment es un buen componente que copia los comportamientos básicos de la actividad, todavía no es un componente de aplicación independiente como actividad y debe adjuntarse a la actividad para funcionar.
Look here para más detalles
BTW, Respuesta obsoleta, que solo se aplica a las aplicaciones que desean funcionar en dispositivos anteriores a API 11. – ToolmakerSteve
@ToolmakerSteve ¿Puede proporcionar más detalles? Si es posible, ¿puede editar la respuesta con una versión actualizada? –
un FragmentActivity es una actividad ad hoc que contiene Fragmento. En estas pocas palabras te he explicado uno de los principales cambios importantes que, con android 3.0 (HoneyComb), el equipo android ha insertado en el sdk de Android.
Con este nuevo tipo de concepto, sus piezas de código y diseño se vuelven más flexibles y fáciles de mantener. Si buscas en google hay muchos ejemplos.
Piense en FragmentActivity como una clase de actividad normal que puede admitir fragmentos. Antes de honeycomb, una clase de actividad no podía generar Fragments directamente, por lo que esto es necesario en actividades que usan Fragments.
Si su distribución objetivo es Honeycomb y más allá puede extender fuera de Actividad en su lugar.
También un fragmento se debe considerar como una 'subactividad'. No puede existir sin una actividad. Siempre piensa en un fragmento como una subactividad y deberías ser bueno. Entonces la actividad sería el padre y el fragmento (s) del tipo de relación simbólica infantil.
- 1. Diferencia entre Actividad y FragmentActivity
- 2. ¿Cuál es la diferencia entre separar un Fragmento y eliminarlo?
- 3. Animación de Fragmento: diferencia entre setCustomAnimations y setTransitionStyle
- 4. ¿Cómo obtener la instancia de fragmento de FragmentActivity?
- 5. Diferencia entre un fragmento de clase y un fragmento de objeto
- 6. ¿Dónde está FragmentActivity # onDetachFragment?
- 7. Pantalla FragmentActivity Tab Blackout
- 8. Reemplazo de TabActivity con FragmentActivity y fragmentos
- 9. MySQL: diferencia entre ', `,' y"
- 10. Diferencia entre objeto y *?
- 11. Diferencia entre. y #
- 12. ¿Diferencia entre == y caso?
- 13. La diferencia entre $ * y $ @
- 14. Diferencia entre & y &
- 15. VBA: Diferencia entre y y +
- 16. FragmentActivity: No se puede emitir a partir del fragmento de clase derivada
- 17. Prueba FragmentActivity Junit
- 18. Diferencia entre -Wconversion entre gcc y g ++
- 19. Diferencia entre subprocess.Popen y os.system
- 20. Diferencia entre decimal y decimal
- 21. ¿Diferencia entre trazo y relleno?
- 22. Diferencia entre interrupción y eventos
- 23. Diferencia entre netTcpContextBinding y netTcpBinding
- 24. ¿Diferencia entre brújula y sass?
- 25. Diferencia entre "__method__" y "método"
- 26. Diferencia entre Mealy y Moore
- 27. Diferencia entre HashSet y HashMap?
- 28. diferencia entre ajax y enviar
- 29. Diferencia entre sistema y shell_exec
- 30. Diferencia entre Style y ControlTemplate
Sin embargo, no se requiere que un fragmento sea parte del diseño de la actividad; también puede usar un fragmento sin su propia IU como trabajador invisible para la actividad. – uzay95
@ uzay95 gracias por señalar esto. Agregué una sección al final para mencionarlo. –
@GunnarKarlsson ¿Deberíamos agregar fragmento a fragmentActivity? – Dhasneem