Android:从两侧进行Switchcompat的水平对齐

时间:2018-12-15 23:17:01

标签: android switchcompat

我试图将android switchcompat对齐,无论是选中还是未选中,但均未成功。

<android.support.v7.widget.SwitchCompat
            android:id="@+id/switch1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:checked="true"
            android:clickable="true"
            android:layout_gravity="center_vertical"/>

这是结果

enter image description here

有什么想法要完成吗?

1 个答案:

答案 0 :(得分:0)

图像中的开关(特定于开关的视图范围)已按预期对齐。但是,它们似乎未对齐,因为拇指实际上偏离了开关轨迹(仍在视图范围内)。如果希望拇指和轨道的两侧对齐,则可以创建自定义开关。

一个例子是:

按如下所示创建background.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"
        android:drawable="@drawable/drawable1" />
    <item android:state_checked="false" android:drawable="@drawable/drawable2"/>
</selector>

将此设置为Switch的背景:

<android.support.v7.widget.SwitchCompat
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/background"/>

您将得到类似的东西:

enter image description here

就设计而言,我知道这并不完美,但是您明白了! 这表明视图边界实际上在选中状态和未选中状态下都是对齐的。

您可以通过设置轨道,拇指等等来进一步自定义它...

稍微调整背景并设置音轨,您将得到类似的东西:

enter image description here

干杯!