Share via


Fragmentos

O Android 3.0 introduziu fragmentos, mostrando como dar suporte a designs mais flexíveis para os vários tamanhos de tela diferentes encontrados em telefones e tablets. Este artigo abordará como usar fragmentos para desenvolver aplicativos Xamarin.Android e também como dar suporte a fragmentos em dispositivos pré-Android 3.0 (Nível de API 11).

Visão geral de fragmentos

Os tamanhos de tela maiores encontrados na maioria dos tablets adicionaram uma camada extra de complexidade ao desenvolvimento do Android— um layout projetado para a tela pequena não necessariamente funciona tão bem para telas maiores e vice-versa. Para reduzir o número de complicações que isso introduziu, o Android 3.0 adicionou dois novos recursos, Fragmentos e Pacotes de Suporte.

Os fragmentos podem ser considerados módulos de interface do usuário. Eles permitem que o desenvolvedor divida a interface do usuário em partes isoladas e reutilizáveis que podem ser executadas em atividades separadas. Em tempo de execução, as próprias Atividades decidirão quais fragmentos usar.

Os pacotes de suporte eram originalmente chamados de Bibliotecas de Compatibilidade e permitiam que fragmentos fossem usados em dispositivos que executam versões do Android antes do Android 3.0 (API Nível 11).

Por exemplo, a imagem abaixo ilustra como um único aplicativo usa Fragmentos em diferentes fatores forma de dispositivo.

Diagrama de como os fragmentos são usados em tablets e aparelhos

O fragmento A contém uma lista, enquanto o Fragmento B contém detalhes de um item selecionado nessa lista. Quando o aplicativo é executado em um tablet, ele pode exibir os dois Fragmentos na mesma Atividade. Quando o mesmo aplicativo é executado em um aparelho (com seu tamanho de tela menor), os Fragmentos são hospedados em duas atividades separadas. O fragmento A e o Fragmento B são os mesmos em ambos os fatores forma, mas as Atividades que os hospedam são diferentes.

Para ajudar uma atividade a coordenar e gerenciar todos esses Fragmentos, o Android introduziu uma nova classe chamada FragmentManager. Cada Atividade tem sua própria instância de um FragmentManager para adicionar, excluir e localizar fragmentos hospedados. O diagrama a seguir ilustra a relação entre fragmentos e atividades:

Diagrama ilustrando relações entre Atividade, Gerenciador de Fragmentos e Fragmentos

Em alguns aspectos, os fragmentos podem ser considerados como controles compostos ou como mini-Atividades. Eles agrupam partes da interface do usuário em módulos reutilizáveis que podem ser usados independentemente pelos desenvolvedores em Atividades. Um fragmento tem uma hierarquia de exibição , assim como uma atividade , mas, ao contrário de uma Atividade, ele pode ser compartilhado entre telas. As exibições diferem dos fragmentos em que os fragmentos têm seu próprio ciclo de vida; os modos de exibição não.

Embora a Atividade seja um host para um ou mais Fragmentos, ela não está diretamente ciente dos fragmentos em si. Da mesma forma, os fragmentos não estão diretamente cientes de outros fragmentos na atividade de hospedagem. No entanto, fragmentos e atividades estão cientes do FragmentManager em sua Atividade. Usando o FragmentManager, é possível que uma Atividade ou um Fragmento obtenha uma referência a uma instância específica de um Fragmento e, em seguida, chame métodos nessa instância. Dessa forma, a Atividade ou fragmentos podem se comunicar e interagir com outros fragmentos.

Este guia contém uma cobertura abrangente sobre como usar fragmentos, incluindo:

  • Criando fragmentos – como criar um fragmento básico e métodos chave que devem ser implementados.
  • Gerenciamento e transações de fragmentos – como manipular fragmentos em tempo de execução.
  • Pacote de Suporte do Android – como usar as bibliotecas que permitem que fragmentos sejam usados em versões mais antigas do Android.

Requisitos

Os fragmentos estão disponíveis no SDK do Android a partir do nível de API 11 (Android 3.0), conforme mostrado na captura de tela a seguir:

Selecionando o nível de API no Gerenciador de SDK do Android

Os fragmentos estão disponíveis no Xamarin.Android 4.0 e superior. Um aplicativo Xamarin.Android deve ter como destino pelo menos o nível de API 11 (Android 3.0) ou superior para usar Fragmentos. A Estrutura de Destino pode ser definida nas Propriedades do projeto, conforme mostrado abaixo:

Definindo o nível de API da Estrutura de Destino nas Opções do Projeto

É possível usar Fragmentos em versões mais antigas do Android usando o Pacote de Suporte do Android e o Xamarin.Android 4.2 ou superior. Como fazer isso é abordado com mais detalhes nos documentos desta seção.