【问题标题】:Android SearchView Hide Keyboard on Start upAndroid SearchView 在启动时隐藏键盘
【发布时间】:2016-05-19 23:19:47
【问题描述】:

我正在尝试解决一个小问题。 当我打开我的应用程序时,键盘显示输入搜索视图的查询。但是,我只想在单击搜索视图时出现键盘。我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: android search android-softkeyboard searchview


    【解决方案1】:

    这对我有用 我习惯了这个代码隐藏键盘并显示提示

     searchView =(SearchView)view.findViewById(R.id.searchView);
        
        searchView .setIconified(false);
        searchView .clearFocus();
    

    【讨论】:

      【解决方案2】:

      确保你不要使用这个:

      searchInput = (SearchView) layout.findViewById(R.id.search);
      searchInput.onActionViewExpanded();//<<<<------------------ don't use it.
      

      【讨论】:

        【解决方案3】:

        对我来说,我必须同时调用 setFocusable(false) 和 clearFocus()

        @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                . . .
                searchView = (SearchView) findViewById(R.id.search_view);
                searchView.setFocusable(false);
                . . .
            }
        
        @Override
            protected void onResume() {
                super.onResume();
                . . .
                searchView.clearFocus();
                . . .
            }
        

        【讨论】:

          【解决方案4】:

          这对我有用:明确关注活动或片段的 onResume()

          objSearchView=(SearchView)view.findViewById(R.id.searchView);
          
           @Override
              public void onResume() {
                  super.onResume();
                  objSearchView.clearFocus();
              }
          

          【讨论】:

            【解决方案5】:

            这对我有用:

            searchView =(SearchView)view.findViewById(R.id.searchView);
            searchView.clearFocus();
            

            【讨论】:

            • 这个答案没有利用 API 中的错误。感谢您添加它。
            【解决方案6】:

            这对我有用。

            /* 用于隐藏焦点的代码 */

            searchView =(SearchView)view.findViewById(R.id.searchView);
            searchView.setFocusable(false);
            

            【讨论】:

            • 这也将阻止视图在需要时获得焦点。
            【解决方案7】:

            在 XML 文件的布局标签中使用此属性:

            android:focusable="true"
            android:focusableInTouchMode="true"
            

            或在您的 Activity 的清单 xml 中添加属性:

            android:windowSoftInputMode="stateAlwaysHidden"
            

            【讨论】:

            • 感谢您的快速回放!但是,不幸的是,它们都不起作用。键盘在启动时仍然显示。
            • 对不起,我自己检测到错误。我在应用程序而不是 Activity 下放置了:android:windowSoftInputMode="stateAlwaysHidden"。现在它工作正常!但是,当键盘隐藏时,searchBar 闪烁(就像您在其中输入文本一样)仍然让我很恼火。这个问题也能解决吗?
            • 接受这个答案,开始下一个。
            • 爱它。我为这个问题找到的解决方案都不适合我。清单更改做到了。
            • @Stanojkovic 它可能没有被接受,因为它是一个不完整的答案。这是解决依赖于相互覆盖的冲突参数的问题的一种非常“hacky”的方法。
            猜你喜欢
            • 1970-01-01
            • 2011-08-24
            • 1970-01-01
            • 2017-01-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-07
            相关资源
            最近更新 更多