Jump to content

[Résolu] Gestion du focus à l'ouverture d'une activité


TsCyrille

Recommended Posts

Bonjour

J'ai une activité composée d'un ScrollView avec plusieurs EditText. Quand je lance cette activité, le focus est donné au premier EditText se trouvant dans mon ScrollView mais cela :

- m'ouvre automatiquement le clavier (je fais mes tests sur un HTC Desire)

- me positionne au milieu de mon ScrollView (mon premier EditText se trouvant au milieu du ScrollView)

En fait j'aimerai être positionné au début de mon ScrollView et que le clavier ne s'ouvre pas (en fait que le premier EditText n'ai pas le focus).

Est-ce que cela est possible (par exemple peut on dire que l'on ne veut donner le focus à aucun contrôle à l'ouverture de l'activité) ?

Merci d'avance

Link to comment
Share on other sites

tiens un exemple, il faut rajouter la ligne window machin dans ton manifest a l'endroit de ton activity:

 <activity android:name="Test"
       		  android:label="TonActivity"
       		  android:windowSoftInputMode="stateHidden">
</activity> 

avec cette config il ne s'ouvrira jamais au start... il doit attendre un edittext ou autre...

Link to comment
Share on other sites

Merci pour ton aide.

En effet en rajoutant dans le manifest :

android:windowSoftInputMode="stateHidden"

le clavier ne s'ouvre plus automatiquement

Il me reste juste ce petit souci : le focus est donné à mon premier EditText qui se trouve au milieu de ma ScrollView donc quand je lance mon activité, je suis positionné au milieu de celle-ci.

J'aimerai me positionner au début de celle-ci à l'ouverture de mon activité (en fait ne pas donner de focus en automatique au premier EditText).

J'ai essayé de mettre ce bout de code dans le constructeur de l'activité

final ScrollView scrollView = ((ScrollView)findViewById(.R.id.myScrollView));
scrollView.post(new Runnable() {
			@Override
			public void run() {
				scrollView.fullScroll(ScrollView.FOCUS_UP);
			}
		});

Mais cela ne fait rien.

Est ce que quelqu'un aurait une idée ?

Merci d'avance

Link to comment
Share on other sites

En fait en cherchant un peu j'ai trouvé cette solution :

  • dans mon xml :

pour mon ScrollView j'ai ajouté ces propriétés :

        android:focusable="true" 
       android:focusableInTouchMode="true"

  • dans mon code :

dans le constructeur, j'ai ajouté ce bout de code :

((ScrollView)findViewByIdR.id.myScrollView).fullScroll(ScrollView.FOCUS_UP);

Avec en plus dans le manifest l'ajout de la directive suivante pour mon activité :

android:windowSoftInputMode="stateHidden"

J'arrive à mes fins... Ce n'est peut être pas la meilleure solution mais elle marche...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...