【问题标题】:SearchView not showing queryHint textSearchView 不显示查询提示文本
【发布时间】:2017-01-01 05:52:45
【问题描述】:

我有一个带有背景可绘制对象的搜索视图,但无论我尝试什么,我似乎都无法让文本出现。 SearchView 中不显示任何文本。

我尝试了android:textandroid:queryHint,甚至使用mSearchView.setQueryHintText("search for something"); 以编程方式设置它,但这些都不起作用。 searchView 不在 actionBar 中。

这是搜索视图的 xml

<android.support.v7.widget.SearchView
        android:id="@+id/m_search_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/searchbar_height"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toLeftOf="@+id/other_button"
        android:background="@drawable/rounded_corner_box"
        android:focusableInTouchMode="true"
        android:gravity="center_vertical|left"
        android:paddingLeft="@dimen/left_padding"
        android:queryHint="search for something"
        android:textAppearance="@style/m_text_appearance"
        android:textColor="@color/m_text_color" />

不设置背景时,根本看不到searchView(searchView是半透明的)。

任何帮助将不胜感激。

【问题讨论】:

  • 您正在使用支持库中的 SearchView,可能您需要使用 app 和 android 设置属性,例如 android:queryHint="search for something" 和 app:queryHint="search for something"

标签: android android-studio searchview query-hints


【解决方案1】:

解决了我自己的问题:我不得不深入研究 SearchView 的源代码。这就是我在 searchView 中显示背景和文本的方式:

SearchView searchView = (SearchView)mLayout.findViewById(R.id.m_searchview);
searchView.setQueryHint("search for something");
View searchTextView = searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchTextView.setBackground(
ResourcesCompat.getDrawable(getResources(), R.drawable. rounded_corner_box, getTheme()));
View searchFrame = searchView.findViewById(android.support.v7.appcompat.R.id.search_edit_frame);
searchFrame.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.m_background, getTheme()));

【讨论】:

    【解决方案2】:
    searchView.setIconified(false);
    

    【讨论】:

    • 为什么会这样?搜索视图收到了 onClick 侦听器事件,但没有显示键盘 (InputMethod),也无法在强制显示键盘时键入查询。
    【解决方案3】:

    如果您已经为 android:queryHint 设置了值,请在 XML 中添加 android:iconifiedByDefault="false"

    【讨论】:

      【解决方案4】:

      在xml布局文件中添加

      app:queryHint="My hint"
      

      【讨论】:

        【解决方案5】:

        对于android.support.v7.widget.SearchView,而不是使用

        android:queryHint="your hint" 
        android:iconifiedByDefault="false"
        

        你必须使用

        app:queryHint="your hint" 
        app:iconifiedByDefault="false"
        

        【讨论】:

          【解决方案6】:

          在xml布局文件中添加

          app:iconifiedByDefault="false"
          

          注意它是 app: 而不是 android:

          【讨论】:

            猜你喜欢
            • 2021-08-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多