无法隐藏搜索查看iconfiedbydefault的虚拟键盘(假)(Unable to hide t

2019-09-01 00:01发布

我因为默认情况下使用默认的搜索查询扩展,但我不希望下面的代码虚拟keyboard.In我试图隐藏键盘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);

我使用的福尔​​摩斯搜索视图控件。 任何建议,隐藏虚拟keyboard.What我做错了吗?

Answer 1:

通过Parnit的回答启发,我已经找到了一个更好的方法,也可以工作,更美观:

mSearchView.clearFocus();


Answer 2:

编辑:我加在上面更好的解决方案,而且还保留了旧的答案作为参考。

 @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;
        }

     });


Answer 3:

尝试

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


Answer 4:

添加下面线在清单中为特定的活动。

 android:windowSoftInputMode="adjustPan|stateHidden"


Answer 5:

简单的解决方案及其为我添加到XML工作:

 android:focusable="false"


Answer 6:

在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;


Answer 7:

ü只需要使用: “对象(EditText上,搜索查看,等等)” clearfocus()。

用它ü生成搜索还是动作之后。 实施例:在该方法中OnQueryTextListener,之后,我使用的搜索。 对于搜索查看。



文章来源: Unable to hide the virtual keyboard of SearchView iconfiedbydefault(false)