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:
FlyoutItem
ouTabBar
. AFlyoutItem
representa um ou mais itens no submenu e deve ser usado quando o padrão de navegação do aplicativo requer um submenu. ATabBar
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.Tab
, que representa o conteúdo agrupado, navegável pelas guias inferiores.ShellContent
, que representa osContentPage
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.
Experiência do usuário de navegação
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:
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:
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:
Dentro de cada guia, objetos adicionais ContentPage
conhecidos como páginas de detalhes podem ser navegados para:
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.
Pesquisar
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:
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.