web-dev-qa-db-fra.com

Comment effacer le focus pour EditText?

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.

36
Taxi Noi Bai Ha Noi

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é.

106
Ajay S

vous devez avoir mentionné la balise <requestFocus> dans votre editTiext field dans XML, supprimez-la et réexécutez-la 

4
Usman Kurd

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>
2
Djek-grif

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.

1
saeed

Vous pouvez essayer ceci:

editText.clearFocus();

où que vous vouliez vous concentrer.

1
Zia Ansari

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 /

0
Lemberg