我正在将CheckBox放在白色背景上。它在预蜂窝设备上看起来很好,但在Honeycomb上,似乎图形具有部分透明度并且是白色的,所以当未选中复选框时,你看不到它。
我尝试使用Theme.Holo.Light
样式,如下所示:
<CheckBox android:text="" style="@android:style/Theme.Holo.Light"
android:layout_marginLeft="5dip" android:id="@+id/checkBoxWifiOnly"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
这似乎没有效果。我错误地输入了语法吗?
答案 0 :(得分:2)
您正在以错误的方式应用主题。将 @android:style / Theme.Holo.Light 应用于AndroidManifest.xml中的整个应用/活动,或使用 @android:style / Widget.Holo.Light.CompoundButton .CheckBox 作为CheckBox的风格。另请注意,“Holo”主题仅适用于Honeycomb及更高版本。
如果您希望复选框具有不同的背景,我认为您必须将主题应用于整个应用。问题是, Widget.Holo.Light.CompoundButton.CheckBox 和 Widget.Holo.CompoundButton.CheckBox 是相同的,并且都扩展了 Widget.CompoundButton。 CheckBox 样式,其中包含由主题属性 listChoiceIndicatorMultiple 设置的“按钮”变量。事实上,这个属性的值对于浅色和深色主题是不同的。
我建议您在 values / themes.xml 文件中创建自己的主题,如下所示:
<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Light">
...
</style>
并在 values-v11 / themes.xml 中,如下所示:
<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Holo.Light">
...
</style>
然后将其设置在 AndroidManifest.xml 中,如下所示:
<application android:theme="@style/Theme.MyAwesomeApp" ... >
...
</application>
也许您还应该阅读主题和样式的工作原理:https://developer.android.com/guide/topics/ui/themes.html