0

我无法在我的项目中更改 Switch 视图的样式,并且无法弄清楚我做错了什么或遗漏了什么......我的项目到处都使用全息。

我无法更改文本、拇指或曲目。我尝试直接从 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>

这是拇指选择器(这些是默认的系统可绘制对象。我尝试过使用不同的可绘制对象):

<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"/>

这是轨道选择器(这些是默认的系统可绘制对象。我尝试过使用不同的可绘制对象):

<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"/>

我还发现了这篇文章如何设置 Android 开关的样式?并按照说明进行操作,但没有运气。

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

4

1 回答 1

2

您需要像这样定义开关。需要其中的整个包名才能正常工作。

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

希望这可以帮助。

于 2013-05-10T13:14:38.853 回答