使用Holo Everywhere时无法更改android Switch样式

时间:2013-05-10 11:48:18

标签: android android-layout android-styles

我无法在项目中更改Switch视图的样式,无法弄清楚我做错了什么或丢失了......我的项目到处都使用holo。

我无法更改文字,拇指或曲目。我已经尝试直接从xml应用android:thumb和android:track drawables但没有任何改变。甚至android:textOff和android:textOn都没有任何效果。

我发现了一篇关于如何自定义android Switch视图样式并查看了所有代码但找不到任何错误的帖子。 http://custom-android-dn.blogspot.co.uk/2013/01/how-to-use-and-custom-switch-in-android.html

真的不确定还有什么可以尝试。

这是xml代码:

    <Switch
        android:id="@+id/home_availability_switch"
        style="@style/MySwitch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:enabled="true"
        android:focusable="true"
        android:textOff="Free"
        android:textOn="Busy" />

这是风格:

<style name="MySwitch" parent="@style/Holo.Switch.Light">
    <item name="android:thumb">@drawable/selector_availability_switch_thumb</item>
    <item name="android:track">@drawable/selector_availability_switch_background</item>
</style>

这是拇指选择器 (这些是默认的系统drawables。我尝试过不同的drawables):

<item android:drawable="@drawable/switch_thumb_pressed_holo_light" android:state_pressed="true"/>
<item android:drawable="@drawable/switch_thumb_activated_holo_light" android:state_checked="true"/>
<item android:drawable="@drawable/switch_thumb_disabled_holo_light" android:state_enabled="false"/>
<item android:drawable="@drawable/switch_thumb_holo_dark"/>

这是轨道选择器 (这些是默认的系统drawables。我尝试过不同的drawables):

<item android:drawable="@drawable/switch_bg_disabled_holo_dark" android:state_enabled="false"/>
<item android:drawable="@drawable/switch_bg_focused_holo_dark" android:state_focused="true"/>
<item android:drawable="@drawable/switch_bg_holo_dark"/>

我也发现了这篇帖子How can I style an Android Switch?并按照说明操作,但没有运气。

在使用Holo Everywhere时,其他任何人都有类似的经历吗?

1 个答案:

答案 0 :(得分:2)

您需要像这样定义开关。需要整个包装名称才能使用。

<org.holoeverywhere.widget.Switch
    android:id="@+id/lockSwitch"
    style="?switchStyleOld"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TestSwitch" />

希望这有帮助。