我有一个switch ,当它打开时,我希望轨迹 colored颜色 是橙色,如果它被关闭,我希望它是灰色的.但是,我不想搞乱现有thhum.xml和track.xml文件的大小.

CUSTOM_Thumb.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="30dp"
        android:height="30dp" />
    <corners android:radius="15dp" />
    <solid android:color="@color/white" />
</shape>

Custom_track.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="60dp"
        android:height="30dp" />
    <corners android:radius="15dp" />
    <solid android:color="@color/cold_grey06" />
</shape>

切换交换机到交换机

<Switch
                android:id="@+id/rememberSwitch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:thumb="@drawable/custom_thumb"
                android:track="@drawable/custom_track" />

推荐答案

您可以在res/color文件夹中创建 colored颜色 资源,例如track_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/orange"/>
    <item android:color="@color/cold_grey06"/>
</selector>

然后在custom_track.xml米比赛中使用它:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="60dp"
        android:height="30dp" />
    <corners android:radius="15dp" />
    <solid android:color="@color/track_color" />
</shape>

Android相关问答推荐

如何使用单个代码库使用不同的firebase项目创建多个应用程序ID apk

了解数据加载在Kotlin中的工作原理

Kotlin Gzip字符串未按预期工作

如何将子零部件的大小调整为可以调整大小的父组件大小?

如何在初始合成期间在可组合函数中调用/获取远程API中的数据[防止无限重组]

Android Compose 为什么 Checkbox 在父对象可点击时需要 onCheckChanged?

为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

Jetpack Compose:如何绘制异形边框?

如何在 Jetpack Compose 中向图像视图添加对角色带?

compose 导航参数字符串包含花括号?

在 Jetpack Compose 中重用具有重复代码的列

如何像 XML 一样在 Compose Android Studio 中折叠/展开小部件代码区域/区域

如何将一个 Composable 作为其参数传递给另一个 Composable 并在 Jetpack Compose 中显示/运行它

Jetpack Compose 部分或开放侧边框

我的观点在jetpack compose中相互重叠

无法 HEAD 'https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml'

如何在 Jetpack Compose 中为中心对齐设置动画?

线圈单元测试 - 如何做到这一点?

CenterAlignedTopAppBar 滚动行为:未为参数状态传递值

如何使伴奏导航 BottomSheet 完全展开?