Quelqu'un pourrait-il expliquer pourquoi le clavier virtuel apparaît et disparaît quand il le fait?Pourquoi le clavier logiciel Android s'affiche-t-il?
J'ai une mise en page avec un tas de contrôles différents, principalement des EditTexts et des boutons. Lorsque j'affiche cette page pour la première fois un EditText en haut de la mise en page a le focus et le clavier logiciel couvre les 45% inférieurs de l'écran
Je supposais que le clavier était présent parce que l'EditText avait le focus, donc je décidé de donner un bouton au bas de ma page l'accent plutôt via. . .
butDone.setFocusableInTouchMode(true);
bResult = butDone.requestFocus();
... juste après la setContentView(). Cela a fonctionné jusqu'à donner le focus du bouton. Le botton a eu le focus et le EditText n'a plus eu de focus MAIS le clavier était toujours là. Finalement, je me suis débarrassé du clavier via
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
mais clairement ma théorie sur le EditText ayant l'accent était erronée. Donc quelqu'un pourrait-il expliquer les "règles" sur ce qui fait apparaître le clavier quand c'est le cas, ou un lien vers ces règles? Merci d'avance!
Donc, dites-vous que même si je donne le focus au bouton dans le code, il l'ignore parce que le focus n'est pas spécifié dans le XML? – user316117
Non, je dis juste que c'est une meilleure solution de spécifier cela sur le XML plutôt que de laisser Android se concentrer sur le premier EditText par défaut, puis le modifier par programmation. – Edgar