Цвета выбранных виджетов, зависящие от темы

Я почти уверен, что на этот вопрос где-то уже был дан ответ. Это кажется слишком обычным. Но я не могу найти ответа. Я тоже не могу придумать решение.

Вот проблема:

Я хочу, чтобы одна из моих строк TableRow имела другой цвет фона. Это просто, мне просто нужно добавить

android:background="#123456" 

в XML-декларацию TableRow. Но я также хочу, чтобы в моем приложении было две темы. В другой теме TableRow должен иметь другой цвет фона. Я просто не могу найти способ определить значение цвета внутри темы и использовать его. Я хотел бы ввести что-то вроде этого:

<style name="Theme.MyApp" parent="@style/Theme.Light">
   <color "my_cool_color">#123456</color>
</style>

<style name="Theme.MyApp.Dark" parent="@style/Theme.Dark">
   <color "my_cool_color">#654321</color>
</style>

И в объявлении TableRow:

android:background="@color/my_cool_color"

Итак, когда я меняю тему, цвет фона этой одной TableRow также изменяется. Я много часов пробовал разными способами и безуспешно ... Одна вещь, которую я не пробовал, - это создать свой собственный виджет на основе TableRow и объявить для него отдельный стиль - я думаю, это должно сработать, но это просто слишком тяжелое решение для такой простой проблемы.

18
задан user1234567 25 December 2011 в 17:48
поделиться