J'ai une activity
avec un champ de recherche (EditText
) en haut et un ListView ci-dessous. À chaque démarrage de l'activité, l'EditText a toujours le focus et affiche le clavier qui couvre partiellement la ListView
.
Il n'y a pas d'autre text view
qui puisse avoir le focus ..__ Je veux que le EditText ait le focus UNIQUEMENT lorsque l'utilisateur le touche et commence à taper. J'essaie de mettre clearFocus () dans onCreateView
, onViewCreated
ou onCreated
, mais pas de chance.
Définissez dans votre mise en page parent les attributs suivants:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/mainLayout"
Android:descendantFocusability="beforeDescendants"
Android:focusableInTouchMode="true" >
Et maintenant, quand activity
commence cette mise en page avec le focus par défaut.
Nous pouvons également supprimer le focus des vues enfants au moment de l'exécution (par exemple, une fois l'édition des enfants terminée):
findViewById(R.id.mainLayout).requestFocus();
ou
Regardez dans l'élément AndroidManifest.xml.
Android:windowSoftInputMode="stateHidden"
Il cache toujours le clavier lors de la saisie de l'activité.
vous devez avoir mentionné la balise <requestFocus>
dans votre editTiext field
dans XML, supprimez-la et réexécutez-la
Vous pouvez utiliser le focus sur la vue conteneur. Ajouter au conteneur Android: focusableInTouchMode = "true" , Android: focusable = "true" et tag requestFocus exemple:
<RelativeLayout
Android:id="@+id/container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:focusableInTouchMode="true"
Android:focusable="true">
<requestFocus/>
<EditText
Android:id="@+id/edit_text_id"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
</RelativeLayout>
Ajoutez les éléments Android: focusable = "true" et Android: focusableInTouchMode = "true" dans la disposition parente de EditText comme suit;
Android:id="@+id/linearLayout7" Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:focusable="true" Android:focusableInTouchMode="true">
Je pense que cela devrait vous aider.
Vous pouvez essayer ceci:
editText.clearFocus();
où que vous vouliez vous concentrer.
Voici la réponse EditText, mise au point claire sur le toucher extérieur .
Ou vous pouvez simplement écrire un widget qui affichera uniquement le texte avec textView et onClick
affichera une boîte de dialogue avec EditText
où vous pourrez éditer ce texte /