没有来自 TabLayout 的 alpha 值的 TabItem

问题描述

我正在使用带有一些特定 alpha 值的 TabLayout,并且选项卡项被设置为有一个图标。但是,我不希望将此 alpha 值应用于图标,而只是应用于 TabLayout 背景。

<com.google.android.material.tabs.TabLayout
    android:id="@+id/id"
    style="@style/style"
    android:background="@color/someColor"
    android:alpha="0.2">

    <com.google.android.material.tabs.TabItem
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:icon="@drawable/icon1" />

    <com.google.android.material.tabs.TabItem
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:icon="@drawable/icon2" />

</com.google.android.material.tabs.TabLayout>

图标也以一些透明度显示,但我希望它以其原始颜色显示。 我试图为每个 TabItem 添加 alpha 属性,但似乎被忽略了。我怎样才能让它工作?

解决方法

你必须使用半透明的 drawable 作为 TabLayout 的背景色。创建一个带有颜色(包括 alpha)的 drawable。

tab_bg.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#5000ddfa" />
</shape>

在您的 TabLayout 中使用它,并删除 android:alpha

<com.google.android.material.tabs.TabLayout
    android:id="@+id/id"
    style="@style/style"
    android:background="drawable/tab_bg">

    ...

</com.google.android.material.tabs.TabLayout>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...