有一个带有searchView的操作栏。 操作栏本身没有主页图标和" up"指示器(主页图标左侧)。 但搜索视图有自定义" up"指示图标。
当searchView被折叠时(o为searchIcon在这里):
Title------------------O otherMenuItem
展开searchView时(<是" up"指示符):
< search term________________ x
所以在主题样式中,它有android:homeAsUpIndicator用于关闭扩展的searchView和自定义&#34; up&#34;指示符图标,(有getActionBar()。setHomeAsUpIndicator(R.drawable.icon_action_back);对于api> 18,但似乎searchView只识别主题中定义的那个,并且无论如何都必须覆盖pre-18,所以setHomeAsUpIndicator是不是解决方案):
<item name="android:homeAsUpIndicator">@drawable/icon_action_back</item>
并在onCreate()中执行了:
getActionBar().setDisplayHomeAsUpEnabled(false);// to not show the "up" indicator when searchView is collapsed
getActionBar().setHomeButtonEnabled(false);
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
ColorDrawable drawable = new ColorDrawable(getResources().getColor(R.color.transparent));
drawable.setBounds(0,0,0,0);
getActionBar().setIcon(drawable);//prevent home icon take space
getActionBar().setDisplayUseLogoEnabled(false);
getActionBar().setDisplayShowHomeEnabled(false);
当searchView展开时,&#34; up&#34;指示符自动显示,无需呼叫
getActionBar().setDisplayHomeAsUpEnabled(true);
当折叠searchView时,在标题之前的操作栏左侧,始终有空格,其中自定义图标的宽度在&lt; item name =&#34; android:homeAsUpIndicator&#34;&gt; @drawable中定义/ icon_action_back&LT; /项目&GT;
如何删除此空格以使标题更靠近窗口左侧?
搜索并找到一些带有id的黑客攻击解决方案,似乎不是依赖内部ID的正确方法。
之前有人碰巧解决了这个问题吗?或者如果必须使用searchView自定义操作栏? 谢谢!