我正在开发一个从API级别14开始工作的Android应用程序。
我的菜单文件中有一个项目
<item
android:id="@+id/menu_search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_action_action_search"
android:orderInCategory="3"
android:showAsAction="always"/>
我想知道这个搜索视图的展开和折叠,我试过这段代码,但它不起作用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_search, menu);
MenuItem mSearchItem = menu.findItem(R.id.menu_search);
mSearchItem.setOnActionExpandListener( new OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
.show();
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
.show();
return true;
}
});
}
}
为什么我没有得到祝酒词?
我还尝试了代码表单处理可折叠的操作视图,它也不起作用!为什么这些东西不起作用?
编辑
我可以使用
mSearchView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight,
int oldBottom) {
SearchView searchView = (SearchView) v;
if (searchView.isIconified()) {
}
else{
}
}
});
但是它非常慢!
有类似的问题,解决方案是(提问者评论,我只是假设它可以得到更多强调):
将android:showAsAction="always|collapseActionView"
添加到菜单项。
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always|collapseActionView"
android:actionViewClass="android.widget.SearchView"
android:queryHint = "@string/search_hint"/>
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1).show();
建议使用 Toast.LENGTH_SHORT
或 Toast.LENGTH_LONG
代替"1"。
例:
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", Toast.LENGTH_SHORT).show();