O X do Xamarin Forms — Effects

Thiago Bertuzzi
Apr 19, 2018 · 2 min read

Fala galera,

Semana passada escrevi um artigo falando sobre custom renderer e no final falei a palavra Effects. Mas o que é Effects? O que come ? Onde vive ? Confira no do… Ei.. vamos conferir logo abaixo!

Effects (Efeitos) nos permitem pequenas personalizações nos controles nativos de cada plataforma, como por exemplo estilos do controle.

Certo, pelo que eu entendi ele faz o mesmo que o Custom Renderer ?

Mais ou menos. Effects simplifica a personalização dos controles, quando queremos obter efeitos simples como alterar a cor do fundo de um TextBox, ou adicionar um sublinhado a um label.

Quando precisamos substituir um controle implementado pelo Xamarin.Forms por um nativo utilizamos Custom Renderer. Mas quando queremos realizar alterações nas propriedades de um controle,recomento utilizar Effects.

Pode parecer confuso mas simplificando é :

Utilizo Effects para Efeitos Simples

Utilizo Custom Renderer para Substituir os métodos ou um controle especifico do Xamarin.Forms por um nativo.

Vamos fazer um exemplo simples para demonstrar.

Implementando Effects

No nosso projeto IOS Vamos criar a classe FocusEffect.cs:

e agora no projeto Android :

O que acabamos de implementar vai alterar a cor de fundo de um controle, assim que ele for selecionado.

Vamos entender o que foi feito. Para criar um Effect precisamos:

1. Criar uma subclasse da PlatformEffect.

2. Substituir o método OnAttached ou OnDetached de cada plataforma com nossa personalização.

3. Adicionar um ResolutionGroupName como atributo da classe. Este carinha criar um namespace para os nossos efeitos, assim evitamos problemas de duplicidade com efeitos de mesmo nome.

4. Finalmente adicionamos o atributo ExportEffect. Ele que vai criar um id para nosso efeito que será utilizado pelo Xamarin.Forms.

Agora voltemos a nosso projeto Core e em nosso Xaml vamos implementar o Effect criado :

E para que nosso projeto entenda o nosso efeito devemos criar uma classe RoutingEffect

Agora vamos rodar

No iOS:

No Android:

Viram? Cada plataforma realizou um efeito diferente.

É possível utilizar os Effects através de Behavior ou passando parametros.. mas isso é assunto para outro artigo.

Quem quiser pode baixar o código de exemplo aqui.

Se quiser saber mais de effects pode olhar a documentação oficial.

Espero ter ajudado!

Aquele abraço!

Thiago Bertuzzi

Written by

Microsoft MVP,Gamer, Desenvolvedor e apaixonado por tecnologia!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade