Android 元素在前棒棒糖和更低的 api 版本的文本后面有白色背景

Android elements have white background behind the text on pre-lollipop and lower api versions

我用TabLayout代替ViewPager

<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabBackground="@drawable/tab_color_selector" />

但这是结果

elements with white background at kitkat

tab_color_selector 有 2 个项目带有 state_selected="true" 和默认值。我也尝试使用像 theese 这样的标签,但没有成功:

android:background="@android:color/holo_blue_dark"
app:tabBackground="@android:color/holo_blue_dark"
app:tabIndicatorColor="@android:color/holo_blue_dark"

项目包含所有必要的依赖项

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'

也试过

vectorDrawables.useSupportLibrary = true

完美适用于棒棒糖和更新的 api。 elements displays great at api 22

如您所见,工具栏菜单中也有 png 图像,它也没有透明背景。我像那样添加 imade

toolbar.getMenu().getItem(0).setIcon(R.drawable.ic_menu);

xml:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorMain"
    android:adjustViewBounds="true"
    app:popupTheme="@style/AppTheme.PopupOverlay">

我真的需要帮助。如果您对背景不透明有任何想法,请告诉我。谢谢

更新:

我发现我的基础应用程序主题有背景标签(我最近不小心添加了它们,完全忘记了)。删除它们解决了问题。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="android:background">@android:color/white</item>
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:colorBackground">@android:color/white</item>
</style>

然而,奇怪的是他们只在棒棒糖之前工作api。

我想 Mahesh 的回答也可以。所以我学到了一个教训:检查你的样式,如果有什么东西没有正确显示:)

在drawable文件夹中制作tab_background.xml并设置
app:tabBackground="@drawable/tab_background" 到您的 tablayour,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@color/tab_background_selected" 
      android:state_selected="true"/>
<item android:drawable="@color/tab_background_unselected"/>

<android.support.design.widget.TabLayout
    ....
    app:tabBackground="@drawable/tab_background"
    ...
/>

一样使用自定义样式
 <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabBackground="@drawable/tab_color_selector"

        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        style="@style/MyCustomTabLayout"
        />

并在您的样式文件中

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
    <item name="tabTextAppearance">@style/MyCustomTabText</item>
    <item name="tabSelectedTextColor">@color/ColorPrimary</item>
</style>