web-dev-qa-db-fra.com

Définir le focus initial dans une application Android

Dans mon Android, le premier bouton que j’ai dans ma disposition est automatiquement centré, ce qui lui donne un contour orange. Comment puis-je définir le focus initial de préférence en XML et peut-il ne rien régler?

83
stealthcopter

Vous pouvez utiliser la balise requestFocus:

<Button ...>
  <requestFocus />
</Button>

Je trouve étrange que cela mette au point l’un de vos boutons automatiquement. Je n’ai observé ce comportement dans aucun de mes points de vue.

156
Matthias

@ Someone Quelque part, j'ai essayé tout ce qui précède en vain. Le correctif que j'ai trouvé provient de http://www.helloandroid.com/tutorials/remove-autofocus-edittext-Android . Fondamentalement, vous devez créer une mise en page invisible juste au-dessus du bouton problématique:

<LinearLayout Android:focusable="true"
              Android:focusableInTouchMode="true" 
              Android:layout_width="0px"
              Android:layout_height="0px" >
    <requestFocus />
</LinearLayout>
60
Vince Lasmarias

Définir les deux :focusable et :focusableInTouchMode à true et appelez requestFocus. Ça fait l'affaire.

26
Ruivo

J'ai trouvé que cela fonctionnait mieux pour moi.

Dans AndroidManifest.xml <activity> element ajouter Android:windowSoftInputMode="stateHidden"

Cela masque toujours le clavier lors de la saisie de l'activité.

22
James

Je viens d'ajouter cette ligne de code dans onCreate():

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Problème résolu.

11
Sam Tang

Utilisez le code ci-dessous,

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();

cela devrait fonctionner.

7
Bikesh

@ Someone Quelque part, j'ai utilisé cela pour effacer le focus:

editText.clearFocus();

et ça aide

3
Ruobin Wang