在Android中移除ActionBar标签的填充

21

http://imageshack.us/photo/my-images/4/iy47.jpg/

我有一个关于操作栏选项卡的问题,我想要去掉选项卡中左边或右边的内边距。

我尝试了这个样式,但它没有起作用:

<!-- indicator tab color -->
<style name="ActionBarTabBarStyle" parent="@style/Widget.AppCompat.ActionBar.TabView">
   <item name="android:background">@drawable/tab_indicator_ab_example</item>
   <item name="android:paddingLeft">0dp</item>
   <item name="android:paddingRight">0dp</item>
</style>

你有什么想法吗?


你正在使用哪种ActionBar方法?比如通过TabHost和TabManager还是其他方式?你能展示一下你正在使用的方法的代码吗?同时,在解决问题之前尽量不要使用主题,例如,你的背景可能会引起问题。 - Casey Gibson
我也遇到了这个问题,没有定义任何样式,但是没有找到解决方案。 - mattd
4个回答

3
在TabLayout中添加app:tabPaddingStart="0dp"app:tabPaddingEnd="0dp"。这对我有效。
<android.support.design.widget.TabLayout
     android:id="@+id/tabs"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     app:tabGravity="fill"
     app:tabPaddingStart="0dp"
     app:tabPaddingEnd="0dp"
     app:tabIndicatorColor="#FF0000"
     app:tabMode="fixed" />

并将 xmlns:app="http://schemas.android.com/apk/res-auto" 添加到父布局中


这是我唯一可行的解决方案;因为我没有使用任何ActionBar、TabHost等。谢谢。 - Virthuss

3
您可以通过配置 'Widget.Sherlock.Light.ActionBar.Solid.Inverse' 实现您想要的外观。具体来说,是在 TabView 和 backgroundStacked 上调整 padding 和 minWidth。
<style name="GPA_Sherlock_theme" parent="@style/Theme.Sherlock.Light.DarkActionBar">        
    <item name="android:actionBarStyle">@style/ActionBar.Solid.Example</item> 
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.Example</item> 
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
</style>

 <style name="ActionBarTabStyle.Example" parent="@style/Widget.Sherlock.ActionBar.TabView">
     <item name="android:paddingLeft">0dp</item>        
     <item name="android:paddingRight">0dp</item>     
     <item name="android:minWidth">0dp</item> 
</style>

<style name="ActionBar.Solid.Example" parent="@style/Widget.Sherlock.Light.ActionBar.Solid.Inverse"> 
     <item name="android:backgroundStacked">@drawable/ab_stacked_solid_example</item> 
     <item name="backgroundStacked">@drawable/ab_stacked_solid_example</item> 
</style> 

填充属性非常关键。以下内容适用于Holo Light主题的用户。 - Atorian

1
您可以使用自定义布局..
    ActionBar actionBar;
    actionBar = getActivity().getActionBar();
    actionBar.setCustomView(R.layout.your_layout);

1
我认为你的问题是由非零父布局填充引起的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接