繁体   English   中英

如何在 MaterialButtonToggleGroup 上更改具有相同不透明度的选定背景颜色

[英]How to change the selected background color with the same opacity on MaterialButtonToggleGroup

这是我的 MaterialButtonToggleGroup 的 XML 代码

    <com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/type_toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/welcome_text"
        app:selectionRequired="true"
        app:singleSelection="true">

        <com.google.android.material.button.MaterialButton
            android:id="@+id/total_silence_button"
            style="?attr/materialButtonOutlinedStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/total_silence"
            android:textColor="@color/light_green_700"
            android:textStyle="bold"
            app:rippleColor="@color/light_green_700"
            app:strokeColor="@color/light_green_700" />

        <com.google.android.material.button.MaterialButton
            android:id="@+id/priority_only_button"
            style="?attr/materialButtonOutlinedStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/priority_only"
            android:textColor="@color/light_green_700"
            android:textStyle="bold"
            app:rippleColor="@color/light_green_700"
            app:strokeColor="@color/light_green_700" />

        <com.google.android.material.button.MaterialButton
            android:id="@+id/calls_only_button"
            style="?attr/materialButtonOutlinedStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:foregroundTint="@color/light_green_700"
            android:text="@string/calls_only"
            android:textStyle="bold"
            app:iconTint="@color/light_green_700"
            app:rippleColor="@color/light_green_700" />

    </com.google.android.material.button.MaterialButtonToggleGroup>

输出是输出 . 当我选择一个按钮时,背景颜色默认是选中时输出

我的问题是如何更改具有相同不透明度的紫色(大概)颜色?

注意:我找不到任何属性来更改颜色。

具有 M3 主题的所选背景颜色由colorSecondaryContainer属性定义。

您可以使用以下方法覆盖它:

<com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/type_toggle"
        app:materialThemeOverlay="@style/button_overlay"

和:

    <style name="button_overlay" >
        <item name="colorSecondaryContainer">#ffe6e1e5</item>
    </style>

在此处输入图像描述

否则,您可以为每个 Button 使用定义自定义样式:

    <com.google.android.material.button.MaterialButton
        android:id="@+id/priority_only_button"
        style="@style/App.Material3.Button.OutlinedButton"

和:

<style name="App.Material3.Button.OutlinedButton" parent="Widget.Material3.Button.OutlinedButton">
    <item name="backgroundTint">@color/app_m3_text_button_background_color_selector</item>
</style>

选择器在哪里:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- selected color -->
    <item android:color="@color/teal_200" android:alpha="0.12"
        android:state_enabled="true" android:state_checked="true"/>

    <item android:color="?attr/colorContainer"/>
</selector>

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM