Android Switch Widget: Setting android:track causes thumb and track to not show up
我无法自定义 Android Switch 小部件的外观。我有自定义 xml 可绘制对象,我想将其用于拇指(通常显示"开"或"关"的小按钮部分)和Rails(拇指滑过的背景)。当我使用 android:thumb 设置拇指时,它工作正常。当我设置Rails时(无论是否设置了拇指),开关完全消失,我只剩下文本显示。
这是我只应用拇指时的代码:
1 2 3 4 5 6 7 8 9 | <com.blahblahblah.blah.CustomSwitch android:id="@+id/switch_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="Off" android:textOn="On" android:text="Something Awesome" android:textColor="@android:color/black" android:thumb="@drawable/custom_switch_thumb" /> |
这是预览窗口中的样子:
并且应用了Rails:
1 2 3 4 5 6 7 8 9 | <com.blahblahblah.blah.CustomSwitch android:id="@+id/switch_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="Off" android:textOn="On" android:text="Something Awesome" android:textColor="@android:color/black" android:track="@color/track_color" /> |
应用曲目的预览窗口:
作为参考,我在 OSX 10.7.5 上使用 Android Studio 0.2.3。
我刚刚偶然发现了同样的问题,并通过 HoloEverywhere 问题跟踪器找到了解决方法。您需要设置您正在使用的可绘制 XML 形状的
不工作(小部件在那里,我可以与之交互,但我看不到它,它被隐藏了):
1 2 3 4 5 | <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/black_50" /> </shape> |
工作(不是添加的
1 2 3 4 5 6 | <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/black_50" /> <size android:width="56dp" android:height="20dp" /> </shape> |
通常只是为了更改图像,您不需要子类化控件,您可以设置它的样式,例如带有样式属性。
关于您的问题,有几个控件需要可绘制而不是纯色。在控件定义(xml 部分)中,您可以定义允许引用,但不能将其限制为可绘制引用。因此,请避免直接使用颜色。如果您不想添加图像,您也可以使用 xml 定义它,但请注意,这并非在所有情况下都有效。