如何将操作栏标题(带有搜索视图,但没有主页图标)对齐得更靠近左侧

时间:2014-11-16 18:21:32

标签: android android-actionbar searchview

有一个带有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自定义操作栏? 谢谢!

0 个答案:

没有答案