【问题标题】:TabItem without alpha value from TabLayout没有来自 TabLayout 的 alpha 值的 TabItem
【发布时间】:2021-08-26 18:44:09
【问题描述】:

我正在使用具有某些特定 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 属性,但似乎被忽略了。我怎样才能让它发挥作用?

【问题讨论】:

    标签: android android-layout android-tablayout alpha alpha-transparency


    【解决方案1】:

    您必须使用半透明可绘制对象作为 TabLayout 的背景颜色。创建一个带有颜色(包括 alpha)的可绘制对象。

    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>
    

    【讨论】:

    • 我用于背景的颜色来自一些我无法控制的代码,它类似于 android:background="@color/someColor_defined_by_a_ux_team",所以如果我直接使用十六进制代码,如果团队更改颜色值,我不会得到任何更改。
    • 好,然后把这个TabLayout的android:background="@color/transparent"(全透明)再添加一个和TabLayout一样大小的View。设置该视图的 alpha 并将背景设置为所需的颜色。
    猜你喜欢
    • 2013-03-30
    • 2020-08-23
    • 1970-01-01
    • 2016-10-01
    • 2021-05-23
    • 2016-12-01
    • 2020-01-25
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多