单击之前SearchView查询提示

时间:2015-11-06 12:26:27

标签: android android-studio

我有一个搜索视图,我有一个查询提示属性。但是,只有在单击搜索视图后才会显示提示。有没有办法让它在被点击之前出现?

<SearchView
        android:id="@+id/searchView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView4"
        android:layout_marginBottom="14dp"
        android:layout_marginTop="30dp"
        android:queryHint="Search" />

enter image description here

enter image description here

我已经看到了另一个类似查询的SO问题,但它没有解决。这就是我再问的原因。

8 个答案:

答案 0 :(得分:13)

您可以在以下行中添加以下内容:

SearchView searchView = (SearchView) findViewById(R.id.searchView);
searchView.onActionViewExpanded();
searchView.setIconified(true);

并将其添加到隐藏焦点(键盘)

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                search.clearFocus();
            }
    }, 300);

答案 1 :(得分:5)

使用此XML:

android:queryHint="hint"
app:queryHint="hint"
app:defaultQueryHint="hint"
android:iconifiedByDefault="false"  // this line
app:iconifiedByDefault="false"

用于{android.support.v7.widget.SearchView}的应用

答案 2 :(得分:3)

make setIconified(false) - 这对我有用 这是有效的,但当它被取消时,再次提示消失

答案 3 :(得分:3)

您只需添加android:iconifiedByDefault="false",它只会默认显示查询提示字符串

答案 4 :(得分:3)

这是一个完整的XML,可以尝试一下。

<androidx.appcompat.widget.SearchView
                        android:id="@+id/searchview"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:iconifiedByDefault="false"
                        app:iconifiedByDefault="false"
                        app:queryHint="@string/search"
                        app:searchIcon="@drawable/ic_action_search"/>

答案 5 :(得分:0)

这对我有用:

searchView.onActionViewExpanded();
new Handler().postDelayed(new Runnable() 
{
    @Override
    public void run() {
          searchView.clearFocus();
    }
}, 300);

另外,不要忘记将这些添加到manifest.xml:

<intent-filter>
    <action android:name="android.intent.action.SEARCH"/>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

答案 6 :(得分:-1)

尝试一下:

SearchView searchView = new SearchView(getSherlockActivity().getSupportActionBar().getThemedContext());
  searchView.setQueryHint("Search for countries…");
  searchView.setIconified(false);

  menu.add("Search")
      .setIcon(R.drawable.abs__ic_search)
      .setActionView(searchView)
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

答案 7 :(得分:-4)

在xml中,您可以使用它 机器人:queryHint =&#34;搜索&#34;