Android Supprime le Soft Keyboard lorsque vous appuyez sur la liste

Dans ma demande, j'ai une vue avec une liste et une barre de recherche pour rechercher dans la liste. Lorsque vous appuyez sur la barre de recherche, elle met l'accent et le clavier doux apparaît. Lorsque je touche la liste, le clavier reste sur la liste, donc je ne vois pas beaucoup de mes listes.

Ma question: comment puis-je savoir si la liste a été touchée / défilée / … et comment puis-je supprimer le clavier programmable ET supprimer la mise au point de l'edittext?

  • Comment utiliser googletest pour tester le code C ++ qui appelle java sur Android?
  • OnSavedInstanceState vs. SharedPreferences
  • SetEmptyView sur ListView ne montre pas sa vue dans une application Android
  • Comment spécifier des activités qui ne sont que pour les téléphones ou les tablettes sur Android
  • Texte de l'édition Android Word-Wrap EditText
  • Android - Le préfixe "xmlns" ne peut être lié à aucun espace de noms explicitement; L'espace de noms de "xmlns" ne peut être lié à aucun préfixe explicitement
  • L'image CheckBox personnalisée est coupée
  • Ajouter un projet de bibliothèque non-Android à une application Android dans Eclipse
  • ListView random IndexOutOfBoundsException sur Froyo
  • Comment rendre Scroll de Listview plus lent?
  • Serrure / déverrouillage d'écran Android par programme
  • Commuter la caméra arrière / avant en vol
  • 3 Solutions collect form web for “Android Supprime le Soft Keyboard lorsque vous appuyez sur la liste”

    Jetez un oeil à cette question pour savoir comment fermer le clavier, car pour savoir si la liste a été déroulée, vous pouvez étendre la classe de liste et remplacer la méthode onScrollChanged () et faire tout ce que vous voulez quand vous faites défiler est interagi avec

    Edit: il existe en fait un OnScrollListener pour écouter les modifications de défilement dans une liste

    Sur la base de la réponse @androidnoob, je publie ici (pour les autres ayant ce problème spécifique), le code complet est nécessaire.

    list.setOnScrollListener(new OnScrollListener() { public void onScrollStateChanged(AbsListView view, int scrollState) { //hide KB InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(colleagueSearch.getWindowToken(), 0); } public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }); 

    YourListView.setOnScrollListener (nouveau AbsListView.OnScrollListener () {

      @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState != 0){ InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.