Я почти уверен, что на этот вопрос где-то уже был дан ответ. Это кажется слишком обычным. Но я не могу найти ответа. Я тоже не могу придумать решение.
Вот проблема:
Я хочу, чтобы одна из моих строк 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 и объявить для него отдельный стиль - я думаю, это должно сработать, но это просто слишком тяжелое решение для такой простой проблемы.