无法看到Android Honeycomb CheckBox白色背景

alb*_*nok 5 checkbox android 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" />
Run Code Online (Sandbox Code Playgroud)

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

cer*_*.cz 2

您以错误的方式应用主题。将@android:style/Theme.Holo.Light应用于AndroidManifest.xml中的整个应用程序/活动,或使用@android:style/Widget.Holo.Light.CompoundButton.CheckBox作为 CheckBox 的样式。另请注意,“Holo”主题仅适用于 Honeycomb 及更高版本。

我认为如果您希望复选框具有不同的背景,则必须将主题应用到整个应用程序。问题是,Widget.Holo.Light.CompoundButton.CheckBoxWidget.Holo.CompoundButton.CheckBox是相同的,并且都扩展了Widget.CompoundButton.CheckBox样式,该样式具有由主题属性listChoiceIndicatorMultiple设置的“button”变量。事实上,该属性的值对于浅色和深色主题是不同的。

我建议您在value/themes.xml文件中创建自己的主题,如下所示:

<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Light">
...
</style>
Run Code Online (Sandbox Code Playgroud)

values-v11/themes.xml中,如下所示:

<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Holo.Light">
...
</style>
Run Code Online (Sandbox Code Playgroud)

然后在AndroidManifest.xml中设置它,如下所示:

<application android:theme="@style/Theme.MyAwesomeApp" ... >
...
</application>
Run Code Online (Sandbox Code Playgroud)

也许您还应该阅读主题和样式的工作原理:https://developer.android.com/guide/topics/ui/themes.html