Próbuję wyświetlić okno dialogowe z pola PreferenceActivity, które jest ustawione na Theme.Light. Okno pokazuje ciemną tekst na ciemnym tle:Android: Problem z wyświetlaniem okna dialogowego z działania Theme.Light
Zakładam, że używa ciemny tekst, ponieważ dziedziczy kolor tekstu z działalności macierzystej, lub coś podobnego. Chciałbym, aby okno dialogowe korzystało z białego tekstu na ciemnym tle lub użyj białego tła z ciemnym tekstem, gdy funkcja PreferenceActivity jest ustawiona na Theme.Light.
To wydaje się być znanym problemem, obejścia, które znalazłem, obejmują tworzenie i używanie niestandardowego stylu, który rozszerza Theme.Dialog i używa go do utworzenia wystąpienia w oknie dialogowym. Coś jak:
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
</style>
Dialog dialog = new Dialog(context, R.style.CustomDialog);
Próbowałem tego, ale to nie miało znaczenia. Próbowałem również wiele różnych wartości dla textColor, z których żaden nie zmodyfikował koloru tekstu Dialog. Jako kontrola poprawności, dodałem:
<item name="android:background">#FFFF0000</item>
do stylu, co zaowocowało w oknie z czerwonym tle (tak, jestem pewien, że jestem instancji okno prawidłowo).
Najbliższym rozwiązaniem jest ustawienie koloru tła okna na biały, co daje poniższe okno dialogowe. Ale to nie jest dobrym rozwiązaniem, ponieważ niektóre wersja lub niektóre urządzenia nie mogą korzystać z tego samego zachowanie widzę gdy odwracanie Kolor tekstu:
tak, to czy jest to dobry sposób, aby ustawić kolor tekstu na dialog wyświetlany z działania Theme.Light?
Wydaje mi się, że pamiętam walkę z czymś podobnym. Nigdy nie działało. Moim ostatecznym rozwiązaniem było posiadanie wielu zasobów wartości, które określały kolory ciemne w przypadku Gingerbread, tj. W res/values-v8 i jako light w res/values. –
Moja pokusa polega na tym, żeby na twardym pasku tło listy było białe, a kolor tekstu listy na czarny. W nadziei, że to zagwarantuje czarny tekst na białym tle, niezależnie od urządzenia lub wersji. – ab11
No tak, to z pewnością zadziała. Ale założyłem, że celem tego bólu było połączenie z motywem urządzenia ...Piernik był o wiele ciemniejszy niż wcześniejsze wersje, dlatego jest to specjalny przypadek. –