【问题标题】:Set TabLayout background transparent设置 TabLayout 背景透明
【发布时间】:2018-12-25 16:50:31
【问题描述】:

我正在尝试更改 TabLayout's 背景透明。我在styles.xml 中设置整个应用程序的背景,TabLayout 使用该颜色作为背景。奇怪的是,如果我将@android:color/transparent 更改为白色或红色,背景颜色会改变,但透明不会:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center">

    <android.support.design.widget.TabLayout
        android:id="@+id/main_pager_dots"
        android:layout_gravity="bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:tabBackground="@drawable/tab_selector"
        app:tabGravity="center"
        android:visibility="gone"
        app:tabIndicatorHeight="0dp"/>

</RelativeLayout>

styles.xml

<resources>
    <style name="Main" parent="Theme.AppCompat.NoActionBar">
        <item name="android:background">#000000</item>
    </style>
</resources>

tab_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/tab_indicator_selected" android:state_selected="true"/>

    <item android:drawable="@drawable/tab_indicator_default" />
</selector>

tab_indicator_selected.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item>
        <shape android:innerRadius="0dp"
            android:shape="ring"
            android:thickness="4dp"
            android:useLevel="false"
            xmlns:android="http://schemas.android.com/apk/res/android">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

tab_indicator_default.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item>
        <shape
            android:innerRadius="0dp"
            android:shape="ring"
            android:thickness="2dp"
            android:useLevel="false">
            <solid android:color="@android:color/darker_gray" />
        </shape>
        <solid android:color="@android:color/transparent"/>
    </item>
</layer-list>

【问题讨论】:

    标签: android tabs android-selector


    【解决方案1】:

    尝试在您的背景中添加 alpha 样式.xml

    <resources>
        <style name="Main" parent="Theme.AppCompat.NoActionBar">
            <item name="android:background">#00000000</item>
        </style>
    </resources>
    

    【讨论】:

    • 感谢您的回复,但这将使我的整个应用程序具有透明背景。我只希望TabLayout 是透明的,因为您看不到TabLayout 背后的内容