Android Honeycomb CheckBox на белом фоне не виден - PullRequest
5 голосов
/ 19 сентября 2011

Я ставлю CheckBox на белом фоне.Он выглядит хорошо на устройствах до Honeycomb, но на 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 Ответ

2 голосов
/ 19 октября 2012

Вы применяете тему неправильно.Либо примените @ 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 стиль, который имеет переменную "button", установленную атрибутом темы 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

...