【问题标题】:SearchView not expandingSearchView 未展开
【发布时间】:2018-07-15 11:46:27
【问题描述】:

用于设置 SearchView 界面:

1.我的菜单项:

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/search"
        android:title="Search Members"
        android:icon="@drawable/ic_search"
        app:showAsAction="collapseActionView|ifRoom"
        android:actionViewClass="android.widget.SearchView"/>
</menu>

2.Activity的Menu Inflater:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu,menu);

    return true;
}

3.将元数据添加到Activity(Manifest):

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <meta-data
            android:name="android.app.default_searchable"
            android:resource="@xml/searchable" />
    </activity>

但是 SearchView 图标没有展开。 谁能告诉我这是什么问题?

【问题讨论】:

    标签: android search searchview


    【解决方案1】:

    试试这个

    1. menu.xml

    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>
    

    2。活动中

    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.dashboard, menu);
    
         MenuItem searchItem = menu.findItem(R.id.action_search);
    
        SearchManager searchManager = (SearchManager) MainActivity.this.getSystemService(Context.SEARCH_SERVICE);
    
        SearchView searchView = null;
        if (searchItem != null) {
            searchView = (SearchView) searchItem.getActionView();
        }
        if (searchView != null) {
            searchView.setSearchableInfo(searchManager.getSearchableInfo(MainActivity.this.getComponentName()));
        }
            return super.onCreateOptionsMenu(menu);
    }
    

    3.在清单中添加这个

    <meta-data 
          android:name="android.app.default_searchable" 
          android:value="com.apkgetter.SearchResultsActivity" /> 
    
            <activity
                android:name="com.apkgetter.SearchResultsActivity"
                android:label="@string/app_name"
                android:launchMode="singleTop" >
                <intent-filter>
                    <action android:name="android.intent.action.SEARCH" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                </intent-filter>
    
                <meta-data
                    android:name="android.app.searchable"
                    android:resource="@xml/searchable" />
            </activity>
    

    4.创建文件可搜索的 xml:

    <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:hint="@string/search_hint"
        android:label="@string/app_name" />
    

    【讨论】:

    • 是的,这行得通。但是你能告诉我我的代码有什么问题吗?
    • app:showAsAction="always|collapseActionView" app:actionViewClass="android.support.v7.widget.SearchView"
    猜你喜欢
    • 1970-01-01
    • 2013-12-23
    • 2013-03-29
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多