web-dev-qa-db-fra.com

Masquer le clavier logiciel lors du chargement de l'application

J'ai une application avec un élément EditText sur la vue principale. Cela signifie que lorsque mon application est chargée, le clavier virtuel apparaît par défaut.

Je voudrais pouvoir masquer le clavier lors du chargement, donc il n'apparaît que lorsque je tape sur la vue EditText.

Comment gérer cela?

34
Esben Andersen

Vous pouvez faire quelque chose de plus simple. Ajoutez ceci au LinearLayout (ou à toute autre disposition qui est la racine):

<LinearLayout
...
Android:focusable="true"
Android:focusableInTouchMode="true"
...
/>
29
neteinstein

Dans votre AndroidManifest.xml:

<activity Android:name="com.your.package.ActivityName"
          Android:windowSoftInputMode="stateHidden"  />

Plus de détails sur windowSoftInputMode peuvent être trouvés ici .

Ce paramètre masque le clavier virtuel lorsque l'utilisateur entre dans une nouvelle activité (même si le contrôle EditText obtient le focus). Le clavier virtuel n'apparaît que lorsque l'utilisateur clique sur le contrôle de la zone d'édition.

84
inazaruk
InputMethodManager imm = 
    (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

Cela se cachera dans toutes les situations (même lorsque EditView a le focus):

 EditText editView = (EditText) findViewById(R.id.editTextConvertValue);
 editView.setInputType(InputType.TYPE_NULL);
5
John Cooper