Introducción:
El patrón básico del "Tutorial de fragmentos" es más o menos así:
- En una tableta, tenga una lista a la izquierda, detalles a la derecha.
- Ambos son
Fragments
y ambos residen en el mismoActivity
. - En un teléfono, tenga una lista
Fragment
en unoActivity
. - Lanzar una nueva
Activity
con los detallesFragment
.
(p. ej., Android 3.0 Fragments API de Dianne Hackborn y Fragments API Guide )
En ambos dispositivos, la funcionalidad está en el Fragments
. (sencillo)
En la tableta , toda la aplicación es 1Activity
, en el teléfono , hay muchasActivities
.
Preguntas:
- ¿Hay alguna razón para dividir la aplicación del teléfono en muchas
Activities
?
Un problema con este método es que duplica una gran parte de la lógica en la tableta principal Activity
y en el teléfono por separado Activities
.
- ¿No sería más fácil retener el modelo de 1 Actividad en ambos casos, usando la misma lógica de encendido
Fragments
y apagado (solo usando un diseño diferente)?
De esta manera, la mayor parte de la lógica reside en Fragments
sí mismos, y solo hay una única Activity
duplicación de código.
También lo que he leído acerca de esto ActionBarSherlock
es que parece funcionar mejor en Fragments
lugar de Activities
(pero aún no he trabajado con él).
¿Los tutoriales están demasiado simplificados o me he perdido algo importante en este enfoque?
Hemos probado ambos enfoques con éxito en la oficina, pero estoy a punto de comenzar un proyecto más grande y quiero hacer las cosas lo más fáciles para mí.
Algunos enlaces a preguntas relacionadas:
- Dilema: cuándo usar Fragmentos vs Actividades:
- Patrones de cuándo utilizar la transición de actividad frente a fragmentos dinámicos
- Android: necesito algunas aclaraciones de fragmentos frente a actividades y vistas
- ¿Actividades o fragmentos en Android?
- Diseño de interacción de múltiples fragmentos y actividades.
- ¿Cuáles son las ventajas exactas de Fragments en Android 3.0?
Actualizaciones
Comencé la recompensa por una pregunta: todavía no estoy convencido de por qué necesito duplicar la lógica de mi aplicación en la actividad de mi tableta y en cada actividad del teléfono.
También encontré un artículo interesante de los chicos de Square, que bien vale la pena leer:
onItemSelected()
método en la Actividad. En mi aplicación "real", tengo muchas listas y sublistas. Este patrón sugiere que mi actividad de pestaña debe tener un onItemSelected()
método para manejar cada una de las listas. Además, las actividades del teléfono deben tener la misma lógica duplicada dentro de cada una de ellas. En mi humilde opinión, es mucho mejor poner la lógica Elemento seleccionado en cada fragmento: no hay duplicación y prefiero esa forma de estructurar el código. Espero que esto ayude