5

デフォルトの検索クエリでデフォルトで展開されるように設定されている検索ビューがありますが、仮想キーボードは必要ありません。以下のコードでは、onCreateOptionsMenuでキーボードを非表示にしようとしましたが、キーボードは表示されています。

imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    MenuItem item = menu.findItem(R.id.menu_search);
    item.expandActionView();
    mSearchView = (SearchView) item.getActionView();
    mSearchView.setIconifiedByDefault(false);
    mSearchView.setQuery(query, true);
    imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);

私はシャーロック検索ビュー ウィジェットを使用しています。仮想キーボードを非表示にする提案はありますか。何が間違っていますか?

4

7 に答える 7

14

Parnitの答えに触発されて、私はより良い方法を見つけました。これも機能し、より美しいです:

mSearchView.clearFocus();
于 2014-03-06T10:14:08.230 に答える
4

編集:より良い解決策を上に追加しましたが、古い回答も参照として保持しました。

 @Override
        public boolean onQueryTextSubmit(String query) {

                  searchView.clearFocus();
            return false;
        }

元の回答: setOnQueryTextListener を使用してプログラミングしました。検索ビューが非表示になるとキーボードが消え、再び表示されるとキーボードがポップアップしなくなります。

    //set query change listener
     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
        @Override
        public boolean onQueryTextChange(String newText) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {
            /**
             * hides and then unhides search tab to make sure keyboard disappears when query is submitted
             */
                  searchView.setVisibility(View.INVISIBLE);
                  searchView.setVisibility(View.VISIBLE);
            return false;
        }

     });
于 2013-08-20T16:26:17.197 に答える
3

試す

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
于 2013-04-24T06:37:05.333 に答える
1

特定のアクティビティのマニフェストに以下の行を追加します。

 android:windowSoftInputMode="adjustPan|stateHidden"
于 2013-04-24T06:24:44.050 に答える
1

XMLに追加するための簡単なソリューション:

 android:focusable="false"
于 2017-10-24T14:40:19.000 に答える
0

Android マニフェスト:

 android:windowSoftInputMode="adjustPan|stateHidden"

クラスでキーボードを開閉します。

   @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action buttons
      switch(item.getItemId()) {
case R.id.search:
         //TODO Whatever
          search.clearFocus();
         //Open and close the  keyboard
          InputMethodManager imm = (InputMethodManager)MyApplication.getAppContext().getSystemService(
                  Context.INPUT_METHOD_SERVICE);
          imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
          imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
          return true;
于 2014-11-13T02:03:05.607 に答える