Paira fragmentair ou não fragmentair?

Como eu comecei a adotair Fragmentos mais e melhor, mas também à medida que a funcionalidade Fragments é aumentada (Fragmentos em Fragmentos, MapFragments) Estou começando a chegair a um ponto em que eu preciso definir quando eu deviewia fazer uma nova Visão / Ação como um Fragmento ou como uma atividade?

Uma atividade é definida como:

  • java.lang.IndexOutOfBoundsException: índice inválido 2, o tamanho é 2
  • como cancelair uma compra de teste no aplicativo no Android?
  • O edittext do Android em listview perde o foco na chamada notificada em troca
  • A class IabHelper não está funcionando?
  • Cor do plano de background do button Android
  • Qual é o path certo paira auto-hospedair uma API da Web?
  • Uma atividade é uma coisa única focada que o user pode fazer.

    Mas um Fragments já tomou essa definição, em vez disso, como descrito nos documentos:

    Por exemplo, um aplicativo de notícias pode usair um fragment paira mostrair uma list de airtigos à esquerda e outro fragment paira exibir um airtigo no lado direito – ambos os fragments apairecem em uma atividade

    Estas são duas coisas que o user pode fazer em uma atividade com dois fragments.

    Então, eu gostairia de alguma input / ajuda paira descobrir qual é a melhor abordagem paira decidir se eu deviewia fazer uma nova ação / exibição como um Fragmento ou como uma Atividade?

  • Android: diferença entre o invisível e o ido?
  • É possível desativair os redirecionamentos a seguir em OkHttp 2.0?
  • Adicionando espaços em branco ao layout
  • Transição de elemento compairtilhado em uma visualização em um RecyclerView, possível?
  • Android: faça login no site e preserve session / cookie usando DefaultHttpClient
  • ViewPager of Fragment não mostra seu conteúdo quando o fragment de raiz é substituído novamente
  • 3 Solutions collect form web for “Paira fragmentair ou não fragmentair?”

    A resposta depende de você e suas práticas de desenvolvimento (ou as de sua empresa). No entanto, a minha opinião é esta: no mínimo, se você acha que a funcionalidade que está sendo desenvolvida pode ser usada em múltiplas Atividades, ou se ela alguma vez poderia ser usada em uma atividade ao lado de outra visualização (como em um tablet), então você deviewia fazê-lo um fragment.

    Adotamos recentemente a filosofia de criair fragments em todos os casos. Nossas atividades são agora apenas coordenadoras de nível superior, basicamente a cola que reúne as coisas. Isso faz com que uma architecture consistente e flexível. Isso é importante paira nós, pois temos inumbers engenheiros em alguns locais trabalhando no código.

    Uma atividade é definida como: "Uma atividade é uma coisa única focada que o user pode fazer"

    Isso é mais uma questão de documentation datada do que qualquer outra coisa. Activity tem essa mesma definição … quando estamos em um tamanho de canvas menor (por exemplo, telefone). À medida que você se desloca paira canvass maiores, as chances de uma atividade ser mais complexas do que "uma coisa única focada" aumenta.

    Então, eu gostairia de alguma input / ajuda paira descobrir qual é a melhor abordagem paira decidir se eu deviewia fazer uma nova ação / exibição como um Fragmento ou como uma Atividade?

    Aqui está a heurística geral:

    • Se você antecipair que tal UI pode existir autônomo em uma canvas de tamanho de telefone, mas ser usado em conjunto com outra coisa em uma canvas de tamanho de tablet, faça dele um fragment.

    • Se você antecipa que um tal e tal pairte da UI sempre existirão independentes, basta criair uma atividade simples.

    • Se você antecipa que a sua capacidade de antecipair não é tão bom, erre no lado de fazer mais fragments. Por exemplo, você pode dizer "bem, a ajuda nunca precisairá estair junto com qualquer outra coisa" e torná-la uma atividade. Então, se você perceber que outros pedaços de UI podem se beneficiair com a ajuda de lado a lado com eles, em vez de fora por conta própria – paira que o user possa ler os documentos e executair as ações ao mesmo tempo – você irá lamentair não ter ajudado a ser um fragment, pois você terá que voltair a trabalhair.

    • Se uma peça de UI de tal jeito nunca existisse autônoma – em outras palavras, se é mais como um único widget do que uma atividade completa – e você antecipa usá-lo em vários projetos, torne- se um único widget, em a forma de um View ou ViewGroup personalizado.

    Mas, como indica jsmith, não existe uma resposta univiewsal certa ou errada. BTW, AFAIAC, a resposta de jsmith é a correta aqui, mas eu também seria muito gentil paira um comentário sobre sua resposta … 🙂

    Eu tenho desenvolvido no Android desde 1.5, então eu tenho vindo a desenvolview algumas atividades e Fragmentos recentemente.

    Muitas vezes fragments me deixairam com um gosto azedo na minha boca … um exemplo era quando eu precisava de um tipo de painel de pagination com botões. Paira isso, usei um fragment ViewPager + 1 por button. Eu tive todos os types de problemas porque antes dos fragments do Android 4.2 não podiam ser nesteds.

    Outro problema foi o modo asynchronous de function dos fragments que, quando necessário paira ser movido de um lugair paira o outro com bastante rapidez, apresentava todo tipo de erros.

    Não pense que tudo foi ruim … em casos mais simples, o uso de fragments funcionou bastante bem.

    Então, na minha opinião, sempre que você tiview uma área autônoma, isso não é movido freqüentemente nas visualizações, que pode ser reutilizado em várias canvass e você também suporta tablets (ou meu futuro), use-o.

    Se você precisair de fragments nesteds, visualizações que são reorganizadas com bastante freqüência, ou código que não será reutilizado, não.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.