TabBar不透明

时间:2015-11-18 14:23:03

标签: android android-actionbar android-styles android-tabs

我正在尝试透明所有导航标签和包含它们的整个标签栏,以便可以通过它们看到ActionBar的背景。

我已经尝试了好几个小时了,我所管理的是让导航标签透明。

<!-- individual ActionBar tabs style -->
<style name="MyTabStyle" parent ="Widget.AppCompat.Light.ActionBar.TabView">
    <item name ="android:background">@android:color/transparent</item>
</style>

当我尝试将包含导航标签的整个TabBar变为透明时,最终变为白色

<!-- ActionBar overall tab bar style -->
<style name="MyTabBarStyle" parent ="Widget.AppCompat.Light.ActionBar.TabBar">
    <item name ="android:background">@android:color/transparent</item>
</style>

我该怎么做才能让它透明?我正在使用Theme.AppCompact.Light>DarkActionBar作为我的应用主题的父级。

修改

我的应用主题

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
    <item name ="android:actionBarTabBarStyle">@style/MyTabBarStyle</item>
    <item name ="android:actionBarTabStyle">@style/MyTabStyle</item>
    <item name="android:actionMenuTextColor">@color/app_yellow</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
    <item name ="actionBarTabBarStyle">@style/MyTabBarStyle</item>
    <item name ="actionBarTabStyle">@style/MyTabStyle</item>
    <item name="actionMenuTextColor">@color/app_yellow</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">

    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>

    <!-- Support library compatibility -->
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="background">@drawable/actionbar</item>
</style>

在我的活动中

final ActionBar actionBar = getSupportActionBar();
    // Specify that tabs should be displayed in the action bar.
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setLogo(R.mipmap.ic_launcher);
    actionBar.setDisplayUseLogoEnabled(true);
    actionBar.setDisplayShowHomeEnabled(true);

1 个答案:

答案 0 :(得分:0)

经过长时间的斗争,我通过实现一个工具栏而不是一个操作栏然后放一个透明的tablayout解决了这个问题,它将在我的工具栏中保留我的标签。这样做,我能够有透明标签( item1,item2,item3 ),在那里我可以看到我的工具栏(我设置为我的操作栏)背景图像。

enter image description here

Click this link to see my implementation