完全自定义MaterialButtonToggleGroup颜色。

MaterialButtonToggleGroup自定义:边框颜色,边框宽度,边框弧度,排列方式,文字按下抬起颜色,背景按下抬起颜色。

搜索好的都是教怎么用,而没有说明怎么替换颜色。我跟了一下style继承关系,替换了想要替换的颜色。
在这里插入图片描述

布局文件
   <com.google.android.material.button.MaterialButtonToggleGroup
                android:id="@+id/toggleGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:theme="@style/MyMaterialButtonToggleGroup"
                app:checkedButton="@id/btn1"
                app:singleSelection="true">

                <com.google.android.material.button.MaterialButton
                    android:id="@+id/btn1"
                    style="@style/MyOutlinedButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="选项一"
                    android:textSize="@dimen/sp18" />

                <com.google.android.material.button.MaterialButton
                    android:id="@+id/btn2"
                    style="@style/MyOutlinedButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="选项二"
                    android:textSize="@dimen/sp18" />

                <com.google.android.material.button.MaterialButton
                    android:id="@+id/btn3"
                    style="@style/MyOutlinedButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="选项三"
                    android:textSize="@dimen/sp18" />

            </com.google.android.material.button.MaterialButtonToggleGroup>
style 文件
<!--选项卡style-->
    <style name="MyMaterialButtonToggleGroup" parent="Widget.MaterialComponents.MaterialButtonToggleGroup">
        <!--选项卡背景边框和选中颜色,如果MaterialButton设置边框颜色后无效-->
        <!--<item name="colorPrimary">@color/white</item>-->
        <!--排列方式-->
        <item name="android:orientation">horizontal</item>
        <!--左上角弧度-->
        <item name="cornerSizeTopLeft">@dimen/dp4</item>
        <!--右上角弧度-->
        <item name="cornerSizeTopRight">@dimen/dp4</item>
        <!--左下角弧度-->
        <item name="cornerSizeBottomLeft">@dimen/dp4</item>
        <!--右下角弧度-->
        <item name="cornerSizeBottomRight">@dimen/dp4</item>
    </style>

    <!--选项卡内部按钮颜色-->
    <style name="MyOutlinedButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
        <!--边框颜色-->
        <item name="strokeColor">@color/white</item>
        <!--边框宽度-->
        <item name="strokeWidth">1dp</item>
        <!--文字按下抬起颜色-->
        <item name="android:textColor">@drawable/outline_text_color</item>
        <!--背景按下抬起颜色-->
        <item name="backgroundTint">@drawable/outline_bg_color</item>
    </style>
文字筛选器 outline_text_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--选中颜色-->
    <item android:alpha="1.00" android:color="@color/white" android:state_checkable="true" android:state_checked="true" android:state_enabled="true" />
    <!--未选中颜色-->
    <item android:alpha="1.00" android:color="@color/gray_C" android:state_checkable="true" android:state_checked="false" android:state_enabled="true" />
    <item android:alpha="1.00" android:color="@color/white" android:state_enabled="true" />
    <item android:alpha="1.00" android:color="@color/white" />
</selector>
背景筛选器 outline_bg_color.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--选中颜色-->
    <item android:alpha="0.3" android:color="@color/white" android:state_checked="true"/>
    <!--未选中颜色-->
    <item android:alpha="1.00" android:color="@android:color/transparent" android:state_checked="false"/>
</selector>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值