自定义两种状态的开关按钮

时间:2020-05-15 08:12:45

标签: android android-button android-styles android-switch

我希望我的开关同时处于enter image description here

所示的状态
<androidx.appcompat.widget.SwitchCompat
            android:id="@+id/toggleNight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:textColor="@color/colorViews"
            android:textOff="Day Mode"
            android:textOn="Night Mode"
            android:thumb="@drawable/custom_thumb"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:track="@drawable/custom_track">

        </androidx.appcompat.widget.SwitchCompat>

custom_thumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_nights_stay"

        android:state_checked="false">

    </item>
    <item android:drawable="@drawable/ic_wb_sunny"
        android:state_checked="true">

    </item>
</selector>

custom_track.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false">
        <shape android:shape="rectangle">
            <corners android:radius="100dp" />
            <solid android:color="#ffffff" />
            <stroke android:width="1dp" android:color="#8c8c8c" />
            <size android:width="40dp" android:height="40dp" />
        </shape>
    </item>

    <item android:state_checked="true">
        <shape android:shape="rectangle">
            <corners android:radius="100dp" />
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#8c8c8c" />
            <size android:height="40dp"
                android:width="40dp"
                />
        </shape>
    </item>
</selector>

上面的代码隐藏了不活动的状态之一。关于如何同时切换两个视图的任何想法。

0 个答案:

没有答案