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
Fragmentsy ambos residen en el mismoActivity. - En un teléfono, tenga una lista
Fragmenten unoActivity. - Lanzar una nueva
Activitycon 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 Activityy 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
Fragmentsy apagado (solo usando un diseño diferente)?
De esta manera, la mayor parte de la lógica reside en Fragmentssí mismos, y solo hay una única Activityduplicación de código.
También lo que he leído acerca de esto ActionBarSherlockes que parece funcionar mejor en Fragmentslugar 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