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:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=pt-br)