Teclado no Surface Duo

Quando os aplicativos estão em uma tela, eles se comportam da mesma forma que em qualquer dispositivo Android – o teclado será exibido em parte da janela do aplicativo, e os desenvolvedores escutarão as inserções de janela para que possam ajustar o layout para acomodar o teclado (garantindo que o texto editável não fique oculto):

O teclado está se sobrepondo ao aplicativo em uma tela

Quando o Surface Duo está no modo paisagem duplicada, o teclado pode ocupar toda a tela inferior. Isso pode afetar o aplicativo de maneira diferente, dependendo de como ele foi exibido antes da edição:

  • Estendido – se o aplicativo se estender nas duas telas, o teclado cobrirá a metade inferior do aplicativo (e as inserções refletirão isso).
  • Aplicativo na tela superior – a inserção inferior será zero, pois o teclado será exibido inteiramente na outra tela.
  • Aplicativo na tela inferior – o aplicativo será movido para a tela superior para acomodar o teclado. Quando a edição de texto é concluída e o teclado é descartado, o aplicativo retorna para a tela inferior.

Teclado no modo de laptop, usa a tela inferior inteira

Os aplicativos não precisam fazer nada diferente para lidar com essas situações, basta reagir às alterações de inserção e ajustar o layout adequadamente.

Inserções de teclado

Para detectar a inserção do teclado, primeiro adicione android:windowSoftInputMode ao seu manifesto do Android:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

Em seguida, defina um ouvinte com o método setOnApplyWindowInsetsListener na exibição raiz da atividade. O Android chamará o ouvinte sempre que o teclado for exibido e o systemWindowInsets.bottom terá o valor de pixel utilizado pelo teclado (incluindo quando o teclado estiver flutuante):

O teclado flutuante tem valores de inserção diferentes

Exemplos