2011-09-19 11 views
5

Umieszczam moduł CheckBox na białym tle. Wygląda dobrze na urządzeniach pre-Honeycomb, ale na Honeycomb, wydaje się, że grafika ma częściową przezroczystość i jest biała, więc gdy pole wyboru jest odznaczone, nie można go zobaczyć.Android CheckBox o strukturze plastra miodu na białym tle nie jest widoczny

Próbowałem za styl Theme.Holo.Light następująco:

<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" /> 

ten wydaje się mieć żadnego efektu. Czy błędnie wpisuję składnię?

+0

Jeśli spoglądając na niestandardowym wyboru następnie obserwować tą [link] [1] [1]: http: // stackoverflow.com/questions/3569412/customize-check-box-preference –

+0

Dzięki, ale nie zamierzam zrobić z niego niestandardowego pola wyboru, aby zmienić je na standardowy checkbox-on-white - teraz jest to pole wyboru- na czarno, więc nie można zobaczyć skrzynki po odznaczeniu. – albnok

Odpowiedz

2

Stosujesz motyw w niewłaściwy sposób. Albo zastosuj: @android: style/Theme.Holo.Light do całej aplikacji/aktywności w AndroidManifest.xml, lub użyj @android: style/Widget.Holo.Light.CompoundButton.CheckBox jako stylu Twojego CheckBox. Zwróć też uwagę, że motyw "Holo" jest dostępny tylko w Honeycomb i wyżej.

Myślę, że musisz zastosować motyw do całej aplikacji, jeśli chcesz, aby pole wyboru miało inne tło. Chodzi o to, że Widget.Holo.Light.CompoundButton.CheckBox i Widget.Holo.CompoundButton.CheckBox są takie same i oba rozszerzenia Widget.CompoundButton.CheckBox styl, który ma przycisk „” zmienny według atrybutu tematu listChoiceIndicatorMultiple. Wartość tego atrybutu różni się w rzeczywistości w przypadku motywu jasnego i ciemnego.

sugeruję Ci stworzyć własny motyw w wartości/themes.xml plik, tak:

<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Light"> 
... 
</style> 

aw Wartości-v11/themes.xml, tak:

<style name="Theme.MyAwesomeApp" parent="@android:style/Theme.Holo.Light"> 
... 
</style> 

a następnie ustawić go w AndroidManifest.xml, tak:

<application android:theme="@style/Theme.MyAwesomeApp" ... > 
... 
</application> 

Może powinieneś przeczytać jak również motywy i style pracy: https://developer.android.com/guide/topics/ui/themes.html

Powiązane problemy