135 votes

EditText, effacer le focus en touchant l'extérieur

Ma mise en page contient ListView , SurfaceView y EditText . Lorsque je clique sur l'icône EditText il reçoit le focus et le clavier à l'écran s'affiche. Lorsque je clique quelque part en dehors de la fenêtre EditText Il est toujours au centre de l'attention (il ne devrait pas l'être). Je pense que je pourrais configurer OnTouchListener sur les autres vues dans la mise en page et effacer manuellement les EditText L'accent est mis sur le Mais cela semble trop artificiel...

J'ai également la même situation dans l'autre présentation - une vue en liste avec différents types d'éléments, dont certains ont des caractéristiques EditText à l'intérieur. Ils agissent comme je l'ai écrit ci-dessus.

Il s'agit de faire EditText se déconcentrent lorsque l'utilisateur touche quelque chose en dehors de l'écran.

J'ai vu des questions similaires ici, mais je n'ai pas trouvé de solution...

0voto

Andrii Points 1

Ce simple extrait de code fait ce que vous voulez

GestureDetector gestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapConfirmed(MotionEvent e) {
                KeyboardUtil.hideKeyboard(getActivity());
                return true;
            }
        });
mScrollView.setOnTouchListener((v, e) -> gestureDetector.onTouchEvent(e));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X