2015-05-14 3 views
0

Я уже давно разрабатываю приложение для Android, и почти все, как это должно быть. Однако у меня есть некоторые проблемы с темами для некоторых просмотров. Мое приложение использует основанный тему AppCompat.Light, как показано ниже:Android-приложение Theme overriding view theme

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"></style> 

Все выглядит белым и чистым, но у меня есть один конкретный экран, который является своего рода темный. Так что я создал следующую тему для некоторых EditText полеев:

<style name="InputField" parent="Theme.AppCompat"></style> 

для того, чтобы сделать поле ввода имеет белый цвет. Затем я запускаю приложение на устройствах с разными версиями Android. На смартфоне с Android 5.0.2 все выглядит так, как я ожидал. Однако на смартфоне с Android 4.4.4 ввод темный. Я даже пытался изменить тему на тему поля ввода в

<style name="InputField" parent="Theme.Holo"></style> 

или

<style name="InputField" parent="@android:style/Widget.Holo.EditText"></style> 

в values-v19 стилях, но она по-прежнему выглядит темной. Если изменить тему приложения для

<style name="AppBaseTheme" parent="Theme.AppCompat.NoActionBar"></style> 

входных поля выглядят, как они должны, но все остальные приложения темно тематика, и это не то, что я хочу. Я могу только предположить, что тема приложения влияет на мою тему просмотров, хотя я явно указал тему, которую они должны использовать. Такое же поведение происходит на смартфоне с Android 4.2.2.

ответ

0

Приведенные в системе стили не определяют используемые цвета, они имеют только ссылки на атрибуты темы. Цвета определяются темой, поэтому недостаточно, если вы установите родительский стиль в какой-либо системный стиль.

Начиная API 21 (5.0), вы можете переопределить тему для определенных видов (или стилей), установив атрибут android:theme. Для более старых версий вам нужно будет определить конкретные цвета и рисунки в вашем стиле.

+0

Но я попытался указать конкретные атрибуты типа ' @ android: color/white' внутри моей темы, и все по-прежнему черное. – Tinadm