2012-04-25 5 views
8

私のアプリケーションでは、リストビューで検索するリストビューと検索バーが表示されます。検索バーをタップするとフォーカスが得られ、ソフトキーボードが表示されます。リストビューに触れると、キーボードはリストビューの上にとどまるので、リストビューはたくさん見えません。Androidリストビューにタッチするとソフトキーボードが削除される

私の質問:リストビューがタッチされた/スクロールされたかどうかを知るにはどうすればよいですか?ソフトキーボードを削除し、edittextからフォーカスを削除するにはどうすればよいですか?リストビューがスクロールされたかどうかを知るために、あなたはリストビュークラスを拡張し、onScrollChanged()メソッドをオーバーライドして、彼らはスクロールするとき、あなたがやりたいためにできるように、キーボードを閉じる方法を見つけるために

+0

可能であればこんにちは、私はここに疑問を持っているあなたは、あなたの検索バーがsoftkeyboardが表示されないデフォルトで私に言うことができます。として私のアプリをイム活動が始まるとすぐにソフトキーボードがポップアップします。 – Manju

答えて

18

のスクロール変化をリッスンするOnScrollListenerが実際に存在し、私は(他の人がこの特定の問題を持つために)ここで必要な全コードを投稿してください。

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) { } 
    }); 
2

yourListView.setOnScrollListener(新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) { 

     } 
    }); 
関連する問題