自定义开关切换按钮
Customized switch toggle button
我不想在 android 中自定义我的开关。问题是默认按钮覆盖了我自己的可绘制对象。
我做了什么:
- 创建我自己的图形(2 个图形)
- 在 drawable 文件夹中创建一个 xml,它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/switch_female" android:state_checked="false"/>
<item android:drawable="@drawable/switch_male" android:state_checked="true"/>
</selector>
- 我的开关定义如下所示:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textOff=""
android:textOn=""
android:id="@+id/genderSwitchOne"
android:layout_below="@+id/txtViewPersonGender"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="25dp"
android:background="@drawable/gender_switch"/>
但我得到的是:
是否可以删除默认按钮(在女性 "em" 上方)?
提前致谢。
PS:抱歉,我无法在没有块引用的情况下粘贴 android xml。
在 Switch
XML 元素上设置 android:thumb="@null"
。这将从显示中删除可绘制的拇指。
编辑:由于上面产生了 NPE,android:thumb="@android:color/transparent"
应该可以解决问题,因为这将作为实际的 ColorDrawable
.
加载
我不想在 android 中自定义我的开关。问题是默认按钮覆盖了我自己的可绘制对象。
我做了什么:
- 创建我自己的图形(2 个图形)
- 在 drawable 文件夹中创建一个 xml,它看起来像这样:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/switch_female" android:state_checked="false"/> <item android:drawable="@drawable/switch_male" android:state_checked="true"/> </selector>
- 我的开关定义如下所示:
<Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textOff="" android:textOn="" android:id="@+id/genderSwitchOne" android:layout_below="@+id/txtViewPersonGender" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="25dp" android:background="@drawable/gender_switch"/>
但我得到的是:
是否可以删除默认按钮(在女性 "em" 上方)?
提前致谢。
PS:抱歉,我无法在没有块引用的情况下粘贴 android xml。
在 Switch
XML 元素上设置 android:thumb="@null"
。这将从显示中删除可绘制的拇指。
编辑:由于上面产生了 NPE,android:thumb="@android:color/transparent"
应该可以解决问题,因为这将作为实际的 ColorDrawable
.