O X do Xamarin Forms — Personalizando a Status Bar, Bindable Effects

Fala galera,

beleza?

Status bar é aquela barrinha que nos avisa quando a bateria esta acabando e que é hora de sair do facebook e carregar seu celular !

Mas é possível customiza-la para dar uma aparência mais legal para o seu app. Se você quiser mudar a cor da satus bar teria que fazer uma customização por plataforma.. Mas se eu quiser ir alem, por exemplo ? Se eu quiser mudar a cor da status bar dependendo da pagina selecionada ? Para isso podemos utilizar um Effect :D …

Eu ja falei aqui de Effects em outro artigo (O X do Xamarin Forms — Effects ), hoje vamos ver outro exemplo pratico ! Bora ?

Criando o efeito

Vamos criar nosso Effect em nosso projeto compartilhado :

Em Seguida no projeto Android

Warning: para o Android estou utilizando o plugin CurrentActivity do James montemagno , basta baixar do nuget e adicionar no projeto Android ;)

E para finaliza no projeto iOS:

Dica : se quer entender como Effects funciona clique aqui.

Pronto!

Utilizando o Efeito

Vamos colocar nosso efeito em nossa MainPage.xaml,declarando o namespace xmlns:effect=”clr-namespace:StatusBarEffectExemplo.Effects”:

Rodando!

Legal não?

Certo ! Mas não vamos deixar tão facil e se eu quiser ficar mudando a cor ao tocar em um botão por exemplo?

Simples: Precisamos criar uma BindableProperty para mudar a cor em tempo de execução!

Não se preocupe é mais facil do que parece!

Vamos criar nossa classe static com nosso parâmetro, e ao alterar o parâmetro nós chamamos o Effect:

Explicando : o que eu fiz aqui é muito simples, eu criei uma classe com uma propriedade color, quando esta propriedade mudar ele remove o Effect da ContentPage e adiciona um novo com a cor escolhida .

Dica : Eu simplifiquei a implementação para ficar facil o entendimento,Mas existe uma documentação completa sobre passar parâmetros em effect , pode ser encontrada clicando aqui.

Agora vamos criar uma ViewModel com a implementação do botão :

Em seguida finalmente implementar nosso botão e nosso BarEffect na contentPage:

Rodando e clicando no botão!

As vezes pode ser muito útil passar parâmetros para effects, ou ate criar a opção de habilitar ou desabilitar o mesmo em tempo de execução :)

Se quiserem podem baixar o exemplo utilizado clicando aqui.

Quer ver outros artigos sobre Xamarin ? Clique aqui.

Espero ter ajudado!

Aquele abraço!