我添加了开关,我想改变它的颜色,所以我在drawable中添加了以下内容。
Thumb.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@color/black" />
<item android:state_pressed="true" android:drawable="@color/tabAccessoryButtonSelected" />
<item android:state_checked="true" android:drawable="@color/tabAccessoryButtonSelected" />
</selector>
Track.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/tabAccessoryButtonSelected" />
</selector>
Layout.xml
<Switch
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/switch1"
android:layout_centerHorizontal="true"
android:paddingTop="50dp"
android:text="@string/notification_settings"
android:textColor="@color/white"
android:thumb="@drawable/thumb"
android:track="@drawable/track"
/>
一旦我添加了这个,开关已停止在布局中显示,文本仍然存在,但切换工具不在那里。
如果我删除Thumb.xml
和Track.xml
,则会开始显示切换。
请指导我在这里做错了什么。
由于
答案 0 :(得分:1)
我现在修改它,尝试下面的解决方案。
<强> Layout.xml 强>
<Switch
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/switch1"
android:layout_centerHorizontal="true"
android:paddingTop="50dp"
android:text="@string/notification_settings"
android:textColor="@color/white"
android:thumb="@drawable/thumb"
android:track="@drawable/track"
/>
<强> track.xml 强>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/color_thumb" />
<item android:drawable="@drawable/gray_track" />
</selector>
<强> thumb.xml 强>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/gray_track" />
<item android:state_pressed="true" android:drawable="@drawable/color_thumb" />
<item android:state_checked="true" android:drawable="@drawable/color_thumb" />
<item android:drawable="@drawable/gray_track" />
</selector>
<强> color_thumb.xml 强>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:height="40dp" />
<gradient android:height="40dp" android:startColor="@color/tabAccessoryButtonSelected"" android:endColor="@color/tabAccessoryButtonSelected""/>
</shape>
<强> gray_track.xml 强>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:height="40dp" />
<gradient android:height="40dp" android:startColor="@color/tabAccessoryButtonSelected" android:endColor="@color/tabAccessoryButtonSelected"/>
</shape>
答案 1 :(得分:1)
我知道这是一个老问题,但我今天遇到了同样的问题,问题似乎是拇指抽签需要固定的尺寸。轨道尺寸似乎会根据拇指的大小进行调整,因此不会显示没有指示尺寸的拇指,因此轨道也不会显示。
如果您将实际的xml drawable添加为拇指而不仅仅是颜色,则可以向其添加尺寸元素:
<强> switch_thumb.xml 强>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/colorSwitchThumb" />
<corners android:radius="@dimen/switch_corner_radius"/>
<size android:height="10dp" android:width="10dp"/>
</shape>