<menu xmlns:androID="http://schemas.androID.com/apk/res/androID"><item androID:ID="@+ID/action_search" androID:title="Search" androID:icon="@drawable/ic_menu_search" androID:showAsAction="always" androID:actionVIEwClass="androID.Widget.SearchVIEw" /><item androID:title="Route" androID:ID="@+ID/action_route" androID:icon="@drawable/route" androID:showAsAction="always" /><item androID:title="Cancel" androID:ID="@+ID/action_cancel" androID:icon="@drawable/cancel" androID:showAsAction="always" /></menu>
我在代码中膨胀它:
@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu,menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchVIEw searchVIEw = (SearchVIEw) menu.findItem(R.ID.action_search).getActionVIEw(); searchVIEw.setSearchableInfo(searchManager.getSearchableInfo(getComponentname())); searchVIEw.setIconifIEdByDefault(false); return true;}
这就是我得到的:
如您所见,仅显示第一个项目(“路线”).
如果我让图标化搜索小部件,我可以看到第二项(“取消”):
//searchVIEw.setIconifIEdByDefault(false);
但是,我想扩展搜索小部件,并且两个项目都可见.可能吗?
更新
我设法通过为搜索小部件设置androID:orderIncategory =“1”为“Route”和“Cancel”以及androID:orderIncategory =“2”来使它们可见:
这几乎就是我想要的.问题是我希望搜索小部件首先(最左边),然后是这两个项目.可能吗?
更新2
我试过“推荐”的方式.我为SearchVIEw设置:
androID:showAsAction="always|collapseActionVIEw"
点击搜索图标后,我得到了扩展视图:
两个问题:
>(次要)导航UI占据左侧的房间,从而减少了SearchVIEw的可用空间.
>(主要)AndroID图标显示为导航UI的一部分.我可以摆脱它吗?
menu.xml:
<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="Search" androID:icon="@androID:drawable/ic_search_category_default" app:actionLayout="@layout/searchvIEw" app:showAsAction="always|collapseActionVIEw"/> <item androID:title="Route" androID:ID="@+ID/action_route" androID:icon="@mipmap/ic_launcher" app:showAsAction="always" /> <item androID:title="Cancel" androID:ID="@+ID/action_cancel" androID:icon="@mipmap/ic_launcher" app:showAsAction="always" /></menu>
searchvIEw.xml:
<?xml version="1.0" enCoding="utf-8"?><SearchVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content"/>
Java:
@OverrIDe public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu,menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); MenuItem searchItem = menu.findItem(R.ID.action_search); SearchVIEw searchVIEw = (SearchVIEw) menu.findItem(R.ID.action_search).getActionVIEw(); if(searchItem!=null) { searchVIEw.setSearchableInfo(searchManager.getSearchableInfo(getComponentname())); searchVIEw.setIconifIEdByDefault(false); } return true; }
根据需求编辑Java(始终打开searchvIEw):
@OverrIDe public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu,menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); MenuItem searchItem = menu.findItem(R.ID.action_search); searchItem.expandActionVIEw(); final SearchVIEw searchVIEw = (SearchVIEw) menu.findItem(R.ID.action_search).getActionVIEw(); if(searchItem!=null) { searchVIEw.setSearchableInfo(searchManager.getSearchableInfo(getComponentname())); searchVIEw.setIconifIEdByDefault(false); // This Listener use for handle back press if you want to go back without collapsing searchvIEw MenuItemCompat.setonActionExpandListener(searchItem,new MenuItemCompat.OnActionExpandListener() { @OverrIDe public boolean onMenuItemActionExpand(MenuItem item) { return true; } @OverrIDe public boolean onMenuItemActionCollapse(MenuItem item) { onBackpressed(); return false; } }); } return true; }
截图:
总结以上是内存溢出为你收集整理的android – *** 作栏只显示搜索视图旁边的一个项目全部内容,希望文章能够帮你解决android – *** 作栏只显示搜索视图旁边的一个项目所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)