我的项目:
compile "com.android.support:appcompat-v7:19.0.1+"
另外,我将此代码添加到我的菜单中:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_search"
android:title="@string/search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
activity
:
...。...。...。...。...。...。...。...。...。...。...。...
编辑1:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.offline, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
//setupSearchView(searchItem);
// menu.findItem(R.id.action_search).getActionView();
return true;
}
发布于 2018-01-29 12:58:31
尝试在布局上添加一个自定义前缀,如下所示:
<?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/action_search"
android:title="@string/search"
android:icon="@drawable/ic_action_search"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
此外,与其:
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
试试这个:
MenuItem searchItem = menu.findItem(R.id.action_search);
// with MenuItemCompat instead of your MenuItem
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
发布于 2018-01-29 13:51:21
在我的例子中,它在开发模式下工作,但是在发布模式(导出签名的apk)上崩溃。若要修复此问题,请将此行添加到proguard-rules.txt
-keep class android.support.v7.widget.SearchView { *; }
https://stackoverflow.com/questions/-100005236
复制相似问题