Gerenciar mudanças na configuração do teclado removível

O sistema Android aciona uma mudança de configuração toda vez que um teclado é conectado ou desconectado de um dispositivo. Para garantir uma experiência do usuário integrada e maximizar a produtividade do usuário em dispositivos de tela grande com teclados destacáveis, o app precisa gerenciar de forma eficaz as mudanças de configuração do teclado.

Impedir a recriação de atividades na mudança de teclado

Para evitar que a atividade seja recriada quando um teclado destacável é conectado ou desconectado, adicione valores relacionados ao teclado ao atributo configChanges do manifesto do app e adicione uma visualização à hierarquia de visualização da atividade para que o app possa detectar mudanças de configuração.

1. Declare o atributo configChanges

Atualize o elemento <activity> no manifesto do app adicionando os valores keyboard|keyboardHidden à lista de mudanças de configuração já gerenciadas:

<activity
    ...
    android:configChanges="...|keyboard|keyboardHidden">

2. Adicionar uma visualização vazia à hierarquia de visualização

Declare uma nova visualização e adicione o código do gerenciador dentro do método onConfigurationChanged() da visualização:

Kotlin

val v = object : View(this) {
    override fun onConfigurationChanged(newConfig: Configuration?) {
        super.onConfigurationChanged(newConfig)
        // Handler code here.
    }
}

Java

View v = new View(this) {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Handler code here.
    }
};

Pontos principais

  • android:configChanges: atributo do elemento <activity> do manifesto do app. Informa ao sistema sobre as mudanças de configuração que o app gerencia.
  • View#onConfigurationChanged() : método que reage à propagação de uma nova configuração do app.

Resultados

Agora o app responde a um teclado externo sendo conectado ou desconectado sem recriar a atividade em execução.

Coleções que contêm este guia

Este guia faz parte destas coleções selecionadas de guias rápidos que abrangem metas mais amplas de desenvolvimento para Android:

Permita que seu app ofereça suporte a uma experiência do usuário otimizada em tablets, dispositivos dobráveis e ChromeOS.

Tem dúvidas ou feedback?

Acesse a página de perguntas frequentes e saiba mais sobre os guias rápidos ou entre em contato e conte o que você pensa.