Xamarin.Forms: Personalizar totalmente guias inferiores no Android e desativar o deslocamento

Por: James Montemagno

Traduzido por: Adriano D’lucca [Repost Traduzido]

Fonte: montemagno.com/xamarin-forms-fully-customize-bottom-tabs-on-android-turn-off-shifting

Parece que o BottomNavigationView, também conhecido como Bottom Tabs no Android, é uma das principais coisas que escrevo nos meus blogs. Havia um post de introdução – como usar a reflexão para remover mudanças no Xamarin.Android nativo, suporte oficial em Xamarin.Forms e, mais recentemente – como obter um bom sombreamento. Estou de volta mais uma vez para falar especificamente sobre como afinar as guias inferiores no android e parar o comportamento ridículo padrão do Android de mudar os ícones de tabulação e texto.

BottomNavFixed-1

Vamos começar com o problema. Se você tiver mais de três guias na sua visualização de navegação inferior (ou seja, as guias inferiores), o texto dos ícones desaparece e você fica com apenas os ícones que “mudam”. Como você pode ver neste exemplo, é meio chato:

Shifting

O que é muito interessante é que nem um único aplicativo específico do Google que usa as guias inferiores tem mudança em tudo. Ajustar esse comportamento costumava ser extremamente difícil e exigia um monte de reflexões Java (o que não é divertido). No entanto, nas mais recentes bibliotecas do Suporte Android 28, o Google o corrigiu com o LabelVisibilityMode . Então, primeiro, certifique-se de que você está pronto para compilar com o Android 9.0 e atualizar as Bibliotecas de Suporte:

Compilar:

Compile

Bibliotecas:

Libs

Agora, só precisamos escrever um efeito simples para aplicar ao nosso Xamarin.Forms TabbedPage (não é necessário renderizador!).
Aqui está nossa base NoShiftEffect.cs dentro do nosso projeto Android:

Agora dentro do seu código compartilhado, crie o efeito de roteamento:


E finalmente adicione o efeito:

Usar LabelVisibilityLabeled para o modo desativará a mudança e exibirá corretamente as etiquetas:

Tabs

Aqui está o que os outros modos fazem:
LabelVisibilityAuto : Label se comporta como “marcado” quando há 3 itens ou menos, ou “selecionado” quando há 4 itens ou mais.
LabelVisibilityLabeled : Label é mostrado em todos os itens de navegação.
LabelVisibilitySelected : Label é exibido no item de navegação selecionado.
LabelVisibilityUnlabled : Label não é mostrado em nenhum item de navegação.


Aqui está o que o último se parece:

NoLabels

Se você estiver usando uma versão mais antiga das bibliotecas de suporte, poderá recorrer ao meu antigo truque de reflexão e a um renderizador personalizado.
Eu acho que é isso! Posso me aposentar das abas de fundo por enquanto!

Por: James Montemagno

Traduzido por: Adriano D’lucca [Repost Traduzido]

Fonte: montemagno.com/xamarin-forms-fully-customize-bottom-tabs-on-android-turn-off-shifting

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *