无法看到Android Honeycomb CheckBox白色背景

时间:2011-09-19 04:36:08

标签: android checkbox styles android-3.0-honeycomb

我正在将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" />

这似乎没有效果。我错误地输入了语法吗?

1 个答案:

答案 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