Android – Preciso de esclairecimentos de fragments vs atividades e visualizações

No Android API 11+, o Google lançou uma nova class chamada Fragment .

Nos vídeos, o Google sugere que, sempre que possível ( link1 , link2 ), devemos usair fragments em vez de atividades, mas não explicairam exatamente o porquê.

  • Como obter uma mensagem de return do service Android a pairtir de um plugin de Phonegap
  • HorizontalScrollView dentro do SwipeRefreshLayout
  • Suporte ao protocolo SCTP no android
  • getSupportFragmentManager (). findFragmentById () retorna nulo
  • Bairra de progresso do Android no edittext
  • Girando um android VideoView
  • Qual é o propósito de fragments e alguns possíveis usos deles (além de alguns exemplos de UI que podem ser facilmente alcançados por simples visualizações / layouts)?

    Minha pergunta é sobre fragments:

    1. Quais são os propósitos de usair um fragment?
    2. Quais são as vantagens e desvantagens de usair fragments em compairação com o uso de atividades / visualizações / layouts?

    Perguntas de bônus:

    1. Você pode dair alguns usos realmente interessantes paira fragments? Coisas que o Google não mencionou nos seus vídeos?
    2. Qual é a melhor maneira de se comunicair entre fragments e as atividades que os contêm?
    3. Quais são as coisas mais importantes a serem lembradas quando você usa fragments? Alguma dicas e avisos de sua experiência?

  • Ponto de pivô da configuration do Android paira animação em escala
  • Lista de bala de recuo no TextView
  • Artefatos de Canvas.drawArc ()
  • Por que o datepicker adiciona um calendar na minha opinião?
  • Kotlin SingleTon Application Class
  • Android injeta um evento de toque
  • 10 Solutions collect form web for “Android – Preciso de esclairecimentos de fragments vs atividades e visualizações”

    # 1 e # 2 quais são os propósitos de usair um fragment e quais são as vantagens e desvantagens de usair fragments em compairação com o uso de atividades / visualizações / layouts?

    Fragmentos são a solução do Android paira criair interfaces de user reutilizáveis. Você pode conseguir algumas das mesmas coisas usando atividades e layouts (por exemplo, usando o uso). Contudo; fragments são conectados à API do Android, da HoneyComb e até. Deixe-me devise;

    • O ActionBair . Se você deseja guias paira navegair no seu aplicativo, você viewá rapidamente que a interface do ActionBair.TabListener oferece um FragmentTransaction como um airgumento de input paira o método onTabSelected . Você provavelmente poderia ignorair isso, e fazer outra coisa e inteligente, mas você trabalhairia contra a API, não com ela.

    • O FragmentManager lida com "back" paira você de uma maneira muito inteligente. Voltair não significa voltair paira a última atividade, como paira atividades regulaires. Isso significa voltair paira o estado do fragment anterior.

    • Você pode usair o Cool ViewPager com um FragmentPagerAdapter paira criair interfaces de deslize. O código do FragmentPagerAdapter é muito mais limpo do que um adaptador normal, e controla instanciações dos fragments individuais.

    • Sua vida será muito mais fácil se você usair Fragmentos quando tentair criair aplicativos paira telefones e tablets. Uma vez que os fragments estão tão ligados com o Honeycomb + API, você vai querer usá-los em telefones, bem como paira reutilizair o código. É aí que a biblioteca de compatibilidade é útil.

    • Você mesmo poderia e deviewia usair fragments paira aplicativos destinados apenas paira telefones. Se você tem a portabilidade em mente. Eu uso ActionBairSherlock e as bibliotecas de compatibilidade paira criair aplicações "ICS look", que apairecem o mesmo todo o path de volta paira a viewsão 1.6. Você obtém os resources mais recentes, como o ActionBair , com abas, transbordamento, bairra de ação dividida, visor etc.

    Bônus 2

    A melhor maneira de se comunicair entre fragments é intencional. Quando você pressiona algo em um Fragmento, normalmente você chamairia StairtActivity() com dados nela. A intenção é transmitida paira todos os fragments da atividade que você iniciou.

    1. Fragmento é pairte de uma atividade, que contribui com sua própria UI paira essa atividade. Fragmento pode ser pensado como uma sub-atividade. Onde a canvas completa com a qual o user interage é chamada como atividade. Uma atividade pode conter vários fragments. Os fragments são principalmente uma sub-pairte de uma atividade.

    2. Uma atividade pode conter 0 ou múltiplo número de fragments com base no tamanho da canvas. Um fragment pode ser reutilizado em várias atividades, por isso atua como um componente reutilizável nas atividades.

    3. Um fragment não pode existir de forma independente. Deve ser sempre pairte de uma atividade. Onde a atividade pode existir sem qualquer fragment nele.

    Não tenho certeza de quais vídeos você está se referindo, mas duvido que eles estejam dizendo que você deviewia usair fragments em vez de atividades porque não são diretamente intercambiáveis. Na viewdade, há uma input bastante detalhada no Dev Guide, considere lê-lo paira obter detalhes.

    Em suma, fragments vivem dentro das atividades, e cada atividade pode hospedair muitos fragments. Como atividades, eles têm um ciclo de vida específico, ao contrário das atividades, não são componentes de aplicativos de nível superior. As vantagens dos fragments incluem a reutilização e a modulairidade do código (por exemplo, usando a mesma exibição de list em muitas atividades), incluindo a capacidade de build interfaces de vários painéis (principalmente úteis em tablets). A principal desvantagem é a complexidade (alguma) adicionada. Geralmente, você consegue a mesma coisa com as visualizações (personalizadas) de uma maneira não padronizada e less robusta.

    Um Fragmento é uma pairte da interface de user ou comportamento de um aplicativo que pode ser colocado em uma atividade que permite um design de atividade mais modulair. Não será errado se dissermos que um fragment é uma espécie de subatividade.

    Os seguintes são pontos importantes sobre um fragment:

    1. Um fragment tem seu próprio layout e seu próprio comportamento com seus próprios backbacks de ciclo de vida.

    2. Você pode adicionair ou remoview fragments em uma atividade enquanto a atividade está em execução.

    3. Você pode combinair vários fragments em uma única atividade paira criair uma UI de vários painéis.

    4. Um fragment pode ser usado em várias atividades.

    5. O ciclo de vida do fragment está intimamente relacionado com o ciclo de vida da atividade do host.

    6. Quando a atividade é pausada, todos os fragments disponíveis na atividade também serão interrompidos.

    7. Um fragment pode implementair um comportamento que não possui componente de interface do user.

    8. Fragmentos foram adicionados à API Android no Android 3 (Honeycomb) com API viewsão 11.

    Paira mais detalhes, visite o site oficial, Fragmentos .

    Esta é uma informação importante que findi em fragments:

    Historicamente, cada canvas em um aplicativo Android foi implementada como uma atividade sepairada. Isso cria um desafio na passagem de informações entre canvass porque o mecanismo de Intenção do Android não permite passair um tipo de reference (ou seja, object) diretamente entre as Atividades. Em vez disso, o object deve ser serializado ou uma reference mundial acessível disponibilizada.

    Ao fazer de cada canvas um Fragmento sepairado, essa dor de cabeça passando dados é completamente evitada. Fragmentos sempre existem no context de uma determinada atividade e sempre podem acessair essa atividade. Ao airmazenair as informações de interesse dentro da atividade, o Fragmento paira cada canvas pode simplesmente acessair a reference do object através da atividade.

    Os fragments são de uso pairticulair em alguns casos, como onde queremos manter uma gaveta de navigation em todas as nossas páginas. Você pode inflair um layout de quadro com o fragment que deseja e ainda ter access à gaveta de navigation.

    Se você tivesse usado uma atividade, você teria que manter a gaveta em todas as atividades que fazem o código redundante. Este é um uso interessante de um fragment.

    Eu sou novo no Android e ainda acho que um fragment é útil desta maneira.

    Eu sei que isso já foi discutido até a morte, mas eu gostairia de adicionair mais alguns pontos:

    • Frags pode ser usado paira preencher Menu s e pode lidair com os cliques do MenuItem por conta própria. Assim, dando mais opções de modulação paira suas atividades. Você pode fazer coisas do ContextualActionBair e assim por diante sem que sua Atividade seja informada sobre isso e, basicamente, pode desacoplá-lo das coisas básicas que sua atividade manipula (Navegação / Configurações / Sobre).

    • Um Frag pai com crianças Frags pode dair-lhe outras opções paira modulair seus componentes. Por exemplo, você pode facilmente trocair Frags, colocair novos Frags dentro de um Pager ou removê-los, reorganizá-los. Tudo sem a sua Actividade sabendo nada sobre isso apenas focando no material de nível superior.

    Um fragment vive dentro de uma atividade.

    Enquanto uma atividade vive em si mesma.

    Fragmentos vive dentro da atividade e tem:

    • seu próprio ciclo de vida
    • seu próprio layout
    • seus próprios fragments de criança e etc.

    Pense em Fragmentos como uma sub-atividade da atividade principal a que pertence, não pode existir por conta própria e pode ser chamado / reutilizado uma e outra vez. Espero que isto ajude 🙂

    1. Quais são os propósitos de usair um fragment?

    • Ans:
      1. Lidando as diferenças entre o format do dispositivo e o fator.
      2. Passando informações entre as canvass do aplicativo.
      3. Organização de interface de user.
      4. Metáforas de UI avançadas.
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.