Introdução:
O padrão básico do "Fragments Tutorial" é mais ou menos assim:
- Em um tablet, tenha uma lista à esquerda e detalhes à direita.
- Ambos são
Fragments
e ambos residem no mesmoActivity
. - Em um telefone, tenha uma lista
Fragment
em umActivity
. - Lançar um novo
Activity
com os detalhesFragment
.
(por exemplo, API do Android 3.0 Fragments por Dianne Hackborn e o Guia da API do Fragments )
Nos dois dispositivos, a funcionalidade está no Fragments
. (simples)
No tablet , o aplicativo inteiro é 1Activity
; no telefone , existem muitosActivities
.
Questões:
- Existe um motivo para dividir o aplicativo de telefone em vários
Activities
?
Um problema com esse método é que você duplica muita lógica no Tablet principal Activity
e no telefone separado Activities
.
- Não seria mais fácil manter o modelo 1 Activity em ambos os casos, usando a mesma lógica de ativar
Fragments
e desativar (apenas usando um layout diferente)?
Dessa maneira, a maior parte da lógica reside em Fragments
si mesma e existe apenas uma Activity
duplicação de código única e menor.
Também o que li sobre ActionBarSherlock
isso é que parece funcionar melhor em Fragments
vez de Activities
(mas ainda não o trabalhei).
Os tutoriais estão simplificados demais ou perdi algo importante nessa abordagem?
Tentamos as duas abordagens com sucesso no escritório - mas estou prestes a iniciar um projeto maior e quero facilitar o máximo possível as coisas para mim.
Alguns links para perguntas relacionadas:
- Dilema: quando usar Fragmentos x Atividades:
- Padrões quando usar a transição de atividade vs fragmentos dinâmicos
- Android - preciso de alguns esclarecimentos sobre fragmentos x atividades e visualizações
- Atividades ou fragmentos no Android?
- Design de interação de vários fragmentos e atividades
- Então, quais são as vantagens exatas dos fragmentos no Android 3.0?
Atualizações
Recompensa iniciada em questão - ainda não estou convencido sobre o motivo pelo qual preciso duplicar minha lógica de aplicativo na atividade do tablet e em cada atividade do telefone.
Também encontrei um artigo interessante do pessoal da Square, que vale a pena ler:
onItemSelected()
método na Atividade. No meu aplicativo "real", tenho muitas listas e sublistas. Esse padrão sugere que minha Atividade da guia deve ter um onItemSelected()
método para lidar com cada uma das listas. Além disso, as atividades telefônicas devem ter a mesma lógica duplicada em cada uma delas. IMHO é muito melhor colocar a lógica Item Selecionado em cada Fragmento - não há duplicação e eu prefiro essa maneira de estruturar o código. Espero que ajude #