我创建了一个新项目,目标是API 11及以上版本.我有一个活动,我希望默认情况下扩展SearchVIEw:
@OverrIDepublic voID onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_search, menu); MenuItem searchItem = menu.findItem(R.ID.action_search); mSearchVIEw = (SearchVIEw) searchItem.getActionVIEw(); mSearchVIEw.setIconifIEdByDefault(false);}
哪个有效,但我不希望动作栏上有任何图标或标题,只是搜索视图.我尝试通过以下方式摆脱我的标题和图标:
getActionbar().setdisplayHomeAsUpEnabled(false);getActionbar().setdisplayShowTitleEnabled(false);getActionbar().setIcon(androID.R.color.transparent);
但我的 *** 作栏仍然在搜索视图的左侧有这个填充:
有办法摆脱它吗?
谢谢
——–编辑——————–
这是我的全部活动:
public class GreatandroID extends FragmentActivity { private SearchVIEw mSearchVIEw; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionbar().setdisplayShowHomeEnabled(false); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.ID.action_search); mSearchVIEw = (SearchVIEw) mi.getActionVIEw(); mSearchVIEw.setIconifIEdByDefault(false); return true; }}
这是菜单xml:
<menu xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:ID="@+ID/action_search" androID:title="@string/search" androID:icon="@androID:drawable/ic_menu_search" androID:showAsAction="always" androID:actionVIEwClass="androID.Widget.SearchVIEw" /></menu>
解决方法:
即使图标是透明的,它仍占用空间:
getActionbar().setIcon(androID.R.color.transparent);
删除此行并添加:
getActionbar().setdisplayShowHomeEnabled(false);
现在,您应该让SearchVIEw占用所有可用空间.
可折叠的 *** 作项具有最大宽度.我能想到的唯一解决方法如下:
public class GreatandroID extends FragmentActivity { private SearchVIEw mSearchVIEw; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionbar().setdisplayShowHomeEnabled(false); getActionbar().setdisplayShowTitleEnabled(false); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.ID.action_search); mSearchVIEw = (SearchVIEw) mi.getActionVIEw(); mSearchVIEw.setIconifIEdByDefault(false); // You can use display.getSize(Point) from API 13 onwards. // For API 11 and 12, use display.getWIDth() final Point p = new Point(); getwindowManager().getDefaultdisplay().getSize(p); // Create LayoutParams with wIDth set to screen's wIDth LayoutParams params = new LayoutParams(p.x, LayoutParams.MATCH_PARENT); mSearchVIEw.setLayoutParams(params); return true; }}
虽然看起来左边还有空格,但你可以使用mSearchVIEw.setBackgroundcolor(color.RED);看到确实没有.
总结以上是内存溢出为你收集整理的android – 使用扩展的SearchView删除actionbar的图标/标题?全部内容,希望文章能够帮你解决android – 使用扩展的SearchView删除actionbar的图标/标题?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)