【问题标题】:Why Searchview search icon is not showing with collapseActionView property?为什么 Searchview 搜索图标未与 collapseActionView 属性一起显示?
【发布时间】:2017-04-05 17:09:26
【问题描述】:

我在 android 工具栏中创建 searchview,但每当我提到 menu.xml 项中的 collapseActionView 属性,例如:-

<item android:id="@+id/search"
    android:title="@string/search_title"
    app:showAsAction="always|collapseActionView"
    app:actionLayout="@layout/search_view_layout"/>

这里的search_view_layout.xml如下:-

<?xml version="1.0" encoding="utf-8"?>
 <android.support.v7.widget.SearchView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="35dp"/>

在这种情况下,我的 searchView 如下图所示:-

在上面的图片搜索图标没有出现。当我点击这个搜索标题 SearchView Open as:-

我不明白,为什么不隐藏Kart菜单项,也不从style.xml中导入任何样式属性:-

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
    <item name="queryBackground">@color/white</item>
    <item name="searchIcon">@drawable/search</item>
    <item name="goIcon">@drawable/ic_search</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:layout_height">35dp</item>
    <item name="android:height">35dp</item>

但我想将 Searchview 设计如下:-

任何建议都将是非常可观的。

【问题讨论】:

    标签: android navigation-drawer toolbar


    【解决方案1】:

    在你的菜单中添加

        <item
        android:id="@+id/search"
        android:icon="@drawable/ic_search"
        android:title="@string/search"
        yourapp:showAsAction="ifRoom|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"
        />
    

    在你的 java 类中

       SearchManager searchManager = (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
       SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
    
        searchView.setSearchableInfo(searchManager.getSearchableInfo(((AppCompatActivity) context).getComponentName()));
        searchView.setIconifiedByDefault(false); 
        searchView.setOnQueryTextListener(this);
    

    要应用样式,请将其添加到您的 style.xml

      <style name="MyToolbar" parent="AppTheme">
       <item name="searchViewStyle">@style/searchStyle</item>
      </style>
    
     <style name="searchStyle" parent="Widget.AppCompat.SearchView.ActionBar">
        <item name="queryHint">@string/search</item>
        <item name="searchIcon">@null</item>
        <item name="colorControlActivated">@color/accent</item>
        <item name="colorControlNormal">@color/accent</item>
    </style>
    

    最后在你的工具栏中应用上面的主题

      <android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:minHeight="?attr/actionBarSize"
                android:theme="@style/MyToolbar"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                >
            </android.support.v7.widget.Toolbar>
    

    【讨论】:

    • 感谢您的帮助,但它显示正常的搜索视图。我已经实现了这一点。我想创建像附加图像一样的搜索视图。请通过我的搜索视图样式。
    猜你喜欢
    • 1970-01-01
    • 2018-03-02
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2014-11-30
    相关资源
    最近更新 更多