O X do Xamarin Forms — “Escondendo” o teclado. Dependency Service em Ação

Fala Galera,

Existem algumas situações que precisamos nos mesmos retirar o teclado da tela para não atrapalhar a experiencia do usuário. Um campo de pesquisa por exemplo, após apertar um botão o teclado deve desaparecer.

Esconder o teclado funciona de forma diferente no IOS e no Android, mas e no Xamarin.Forms? E ai que entra o Fodastico Dependency Service !

Espera aeeeeeeeee, 2 artigos em um ? Isso, o teclado foi só uma desculpa :P

De uma forma resumida, o Dependency Service nos permite acessar funções nativas das plataformas no Xamarin.Forms.

Mas como funciona? Veja o Esquema abaixo :

Basicamente precisamos de 3 Componentes para utilizar o Dependency Service :

  • Interface —A funcionalidade que queremos utilizar é definida por uma interface no código compartilhado
  • Implementação por plataforma — As classes que implementarão essa interface em cada projeto nativo.
  • Registro— Cada implementação deve ser registrada no Dependency Service através de atributos, assim o mesmo poderá encontrar a implementação em tempo de execução.

Achou complicado ? Que nada, vamos ver na pratica.. Agora entra o Papel do teclado nessa historia :D

Seguindo nossa receita de Bolo acima, vamos implementar a Interface IKeyboardHelper no nosso projeto compartilhado :

Certo, agora devemos implementar por plataforma a classe correspondente e o registro.

No projeto IOS vamos criar a iOSKeyboardHelper.cs :

Veja que implementamos o [assembly: Dependency(typeof(iOSKeyboardHelper))] , é com esse atributo que o Dependency Service vai saber qual classe deve chamar no projeto IOS.

Vamos agora fazer no Android o mesmo :

Perfeito! agora fizemos a receita completa. Mas como utilizamos ?

Com apenas uma linha de Código! Sim, simples assim !

Crie um botão Simples no seu projeto Xamarin.Forms, e no evento chame o método :

Chamando apenas o DependencyService.Get<IKeyboardHelper>().HideKeyboard(); a classe da plataforma correspondente é acionada !

Simples não ?

Agora sempre que precisar de algo especifico da plataforma , seu novo amigo se chama Dependency Service

Quem quiser pode baixar o código aqui.

Existem mais 2 Exemplos interessantes da própria Xamarin :

· Checando a orientação do dispositivo

· Checando o status da bateria

Espero ter ajudado!

Aquele abraço!

Microsoft MVP,Gamer, Desenvolvedor e apaixonado por tecnologia!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store