我在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打开为: -
我不明白,为什么不隐藏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如下: -
任何建议都会非常明显。
答案 0 :(得分:0)
在您的菜单中添加
<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>