当用户点击搜索图标时,我有一个可在我的OptionsMenu中扩展的SearchView.但是,它仅在其他OptionsMenu图标中的可用空间内扩展.在宽屏幕上这很好,但是在狭窄的空间内,只有在搜索框中显示5-10个字符的空间.我希望它覆盖其他图标,例如它适用于Android Contacts应用程序.目前,我正在建设targetSdkVersion = 17.希望我错过了一些简单的东西:)
(注意后来添加:到目前为止,我发现可行的唯一解决方案是在我想扩展搜索图标时隐藏所有菜单图标.这在概念上很简单.但它很混乱,因为在恢复隐藏的图标时,必须要去通过一堆逻辑来确定哪些要恢复,或保持状态变量等等)
这是OptionsMenu的项目xml:
<item
android:id="@+id/menu_search_shallow"
android:title="Search Current Folder"
android:icon="@drawable/ic_btn_search"
android:showAsAction="always|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)
我的主要活动代码中也有:
@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.nav_menu, menu);
this.optionsMenu = menu;
MenuItem searchItem = menu.findItem (R.id.menu_search_shallow);
searchItem.setOnActionExpandListener (this);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_shallow_hint));
searchItem = menu.findItem (R.id.menu_search_deep);
searchItem.setOnActionExpandListener (this);
searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_deep_hint));
}
Run Code Online (Sandbox Code Playgroud)
和
@Override
public boolean onMenuItemActionExpand(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener (this);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item)
{ …Run Code Online (Sandbox Code Playgroud)