Partilhar via


Xamarin.Forms Introdução do Shell

Xamarin.Forms A Shell reduz a complexidade do desenvolvimento de aplicativos móveis, fornecendo os recursos fundamentais que a maioria dos aplicativos móveis exige, incluindo:

  • Um único lugar para descrever a hierarquia visual do aplicativo.
  • Uma experiência de navegação comum para o usuário.
  • Um esquema de navegação baseada em URI que permite a navegação para qualquer página no aplicativo.
  • Um manipulador de pesquisa integrado.

Além disso, o aplicativo Shell tem a vantagem de aumentar a velocidade de renderização e reduzir o consumo de memória.

Importante

Os aplicativos existentes podem adotar o Shell e beneficiar-se imediatamente das melhorias de navegação, desempenho e extensibilidade.

Hierarquia visual do aplicativo

Em um Xamarin.Forms aplicativo Shell, a hierarquia visual do aplicativo é descrita em uma classe que subclasse a Shell classe. Essa classe pode ser composta por três objetos hierárquicos principais:

  1. FlyoutItem ou TabBar. A FlyoutItem representa um ou mais itens no submenu e deve ser usado quando o padrão de navegação do aplicativo requer um submenu. A TabBar representa a barra de guias inferior e deve ser usado quando o padrão de navegação do aplicativo começa com guias inferiores e não requer um submenu.
  2. Tab, que representa o conteúdo agrupado, navegável pelas guias inferiores.
  3. ShellContent, que representa os ContentPage objetos de cada guia.

Esses objetos não representam nenhuma interface do usuário, mas sim a organização da hierarquia visual do aplicativo. O Shell usará esses objetos e produzirá a interface de navegação do conteúdo para o usuário.

Observação

As páginas são criadas sob demanda em aplicativos Shell, em resposta à navegação.

Para obter mais informações, consulte Criar um Xamarin.Forms aplicativo Shell.

A experiência de navegação fornecida pelo Xamarin.Forms Shell é baseada em submenus e guias. O nível superior da navegação em um aplicativo do Shell será um submenu ou uma barra de guias inferior, dependendo dos requisitos de navegação do aplicativo. O exemplo a seguir mostra um aplicativo em que o nível superior da navegação é um submenu:

Captura de tela de um submenu do Shell no iOS e no Android

Neste exemplo, alguns itens do submenu são duplicados como itens da barra de guias. No entanto, também há itens que só podem ser acessados a partir do submenu. Selecionar um item de submenu faz com que a guia inferior que representa o item seja selecionada e exibida:

Captura de tela de guias inferiores do Shell no iOS e no Android

Observação

Quando o submenu está fechado, a barra de guias inferior pode ser considerada o nível principal da navegação no aplicativo.

Cada guia na barra de guias exibe um ContentPage. No entanto, se uma guia inferior contiver mais de uma página, será possível navegar pelas páginas por meio da barra de guias superior:

Captura de tela de guias superiores do Shell no iOS e no Android

Dentro de cada guia, objetos adicionais ContentPage conhecidos como páginas de detalhes podem ser navegados para:

Captura de tela do painel de navegação do Shell no iOS e no Android

O Shell usa uma experiência de navegação baseada em URI que usa rotas para navegar para qualquer página no aplicativo, sem precisar seguir uma hierarquia de navegação definida. Além disso, eles também oferecem a capacidade de navegar para trás, sem precisar visitar todas as páginas na pilha de navegação. Para obter mais informações, consulte Xamarin.Forms Navegação do Shell.

Xamarin.Forms O Shell inclui a funcionalidade de pesquisa integrada fornecida pela SearchHandler classe. O recurso de pesquisa pode ser adicionado a uma página adicionando um objeto de SearchHandler subclasse a ela. Isso resulta na adição de uma caixa de pesquisa na parte superior da página. Quando os dados são inseridos na caixa de pesquisa, a área de sugestões de pesquisa é preenchida com dados:

Captura de tela da pesquisa Shell, no iOS e Android

Em seguida, quando um resultado é selecionado na área de sugestões de pesquisa, a lógica personalizada pode ser executada, como navegar até uma página de detalhes.

Para obter mais informações, consulte Xamarin.Forms Pesquisa do Shell.

Suporte a plataforma

Xamarin.Forms O Shell está totalmente disponível no iOS e no Android, mas apenas parcialmente disponível na Plataforma Universal do Windows (UWP). Além disso, o Shell é experimental no momento na UWP e só pode ser usado adicionando a linha de código a seguir à classe App em seu projeto UWP, antes de chamar Forms.Init:

global::Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");

Para obter mais informações sobre o status do Shell na UWP, consulte Xamarin.Forms Quadro de Projeto do Shell no github.com.