【问题标题】:SearchView query hint before clicking itSearchView 查询提示点击前
【发布时间】:2015-11-06 12:26:26
【问题描述】:

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

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

我看到另一个类似查询的 SO question,但没有解决。这就是我再次询问的原因。

【问题讨论】:

标签: android android-studio


【解决方案1】:

使用这个 XML:

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

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

【讨论】:

  • 这是正确答案!不是被选中的...谢谢!
  • 这绝对是正确的答案。 android:iconifiedByDefault="false"
  • 正是这个++++
【解决方案2】:

您可以在下面添加这些行:

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

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

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

【讨论】:

  • 刚查了一下,在xml iconifiedByDefault中找到了一个属性。我将其设置为 false 并且它起作用了。谢谢。 :)
  • searchView.setIconified(false);确实为我工作。谢谢:)
  • searchView.setIconified(false); - 是焦点 searchView 并作为结果显示提示。但是当 searchView 不在焦点时我需要显示提示。我该怎么做?
【解决方案3】:

你可以只添加android:iconifiedByDefault="false"它默认只显示查询提示字符串

【讨论】:

    【解决方案4】:

    这是一个完整的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>
    

    【讨论】:

      【解决方案5】:

      使 setIconified(false)-对我有用 可以,但是当它被取消点击时,提示又消失了

      【讨论】:

        【解决方案6】:

        这对我有用:

        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>
        

        【讨论】:

          【解决方案7】:

          使用这些属性

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

          【讨论】:

            【解决方案8】:

            试试这个:

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

            【讨论】:

              【解决方案9】:

              在xml中,你可以使用这个 android:queryHint="搜索"

              【讨论】:

              • 请在您的答案中添加更多信息(完整示例,有价值的链接)。
              猜你喜欢
              • 2017-01-01
              • 2021-08-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-11-22
              相关资源
              最近更新 更多