Android Studio 点击前的SearchView查询提示

wwwo4jvm  于 2023-06-24  发布在  Android
关注(0)|答案(9)|浏览(112)

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

<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" />

我看到了另一个类似的问题,但它没有得到解决。所以我再问一遍。

2j4z5cfb

2j4z5cfb1#

使用此XML:

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

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

yptwkmov

yptwkmov2#

试试这个:

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

并尝试隐藏焦点(键盘)

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

s2j5cfk03#

您可以添加android:iconifiedByDefault="false",默认情况下它只显示查询提示字符串

bq3bfh9z

bq3bfh9z4#

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

<androidx.appcompat.widget.SearchView
                android:id="@+id/searchView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:theme="@style/PlayerSearchView"
                android:iconifiedByDefault="false"
                android:paddingStart="-4dp"
                app:iconifiedByDefault="false"
                app:searchIcon="@drawable/ic_person_search"
                app:closeIcon="@drawable/ic_close"
                app:queryBackground="@android:color/transparent"/>

加上这个很有型

<style name="PlayerSearchView" parent="Widget.AppCompat.SearchView">
        <item name="queryHint">@string/search_player</item>
        <item name="android:textSize">@dimen/_10ssp</item>
        <item name="fontFamily">@font/montserrat_medium</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/colorBlack</item>
        <item name="android:queryHint">@color/colorBlack</item>
    </style>
zphenhs4

zphenhs45#

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

atmip9wb

atmip9wb6#

使用这些属性

<SearchView
.
.
android:iconifiedByDefault="false"
app:iconifiedByDefault="false"
e5nszbig

e5nszbig7#

这对我很有效:

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>
2admgd59

2admgd598#

试试这个:

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);
pokxtpni

pokxtpni9#

在xml中,你可以使用这个android:queryHint=“Search”

相关问题