2017-01-05 6 views
1

У меня есть глобальный стиль, определенный в файле theme.xml. Сюда входит пункт <item name="colorControlActivated">@color/white</item>.Android - Overriding theme.xml styling

У меня есть DatePicker, который выбранный фон фона использует этот элемент стиля и, следовательно, белый ... на белом фоне. Поэтому выбранная дата невидима.

Это DatePicker:

<DatePicker 
    android:id="@+id/DatePicker" 
    style="@style/date_picker_theme" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:calendarViewShown="false" 
    android:descendantFocusability="blocksDescendants" 
    android:endYear="2100" 
    android:startYear="1900" /> 

, и я попытался переопределить colorControlActivated стиль (в styles.xml) так:

<style name="date_picker_theme"> 
    <item name="colorControlActivated">@color/green</item> 
</style> 

но не задумываемся.

Если я изменил тему style.xml style на <item name="colorControlActivated">@color/green</item>, тогда он отражает штраф, но может изменить какой-то другой стиль в приложении.

Вопрос: Как я могу переопределить это только для моего DatePicker?

Как это выглядит сейчас:

enter image description here

Как это должно выглядеть:

enter image description here

ответ

1

Вместо того, чтобы установить его в качестве

style="@style/date_picker_theme" 

установить его в качестве

android:theme="@style/date_picker_theme" 

Полный Datepicker вид снизу

<DatePicker 
    android:id="@+id/DatePicker" 
    android:theme="@style/date_picker_theme" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:calendarViewShown="false" 
    android:descendantFocusability="blocksDescendants" 
    android:endYear="2100" 
    android:startYear="1900" />