2017-12-16 100 views
2

Android의 DatePickerDialog에 대한 어두운 테마 스타일을 설정하려고합니다. Vikram's answer here에 따라 DatePickerDilog's 생성자에서 스타일을 설정하고 싶지 않습니다.DatePickerDialog의 배경색을 기본 흰색으로 변경하는 방법?

다음 스타일을 설정했습니다. & 설정되었지만 OK에는 적용되지 않습니다. & 세로 모드에서 버튼 패널을 취소합니다. 그러나 풍경에서 작동! :

내 V21/styles.xml :

<style name="AppTheme.Dark.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@color/primaryColorDark_dark</item> 
    <item name="android:datePickerDialogTheme">@style/DatePicker_Theme_Dark</item> 
</style> 
<!--Dark DatePicker Theme & style--> 
<style name="DatePicker_Theme_Dark" parent="android:Theme.Material.Light.Dialog"> 
    <item name="android:datePickerStyle">@style/DatePicker_Dark</item> 
</style> 
<style name="DatePicker_Dark" parent="@android:style/Widget.Material.Light.DatePicker"> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:background">@color/primaryColor_dark</item> 
    <item name="android:headerBackground">@color/colorAccent_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
</style> 

내 styles.xml :

내 된 .java 파일에서
<!-- Dark Application theme --> 
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="windowActionModeOverlay">false</item> 
</style> 
<style name="AppTheme.Dark" parent="AppTheme.Base"> 
    <item name="android:windowBackground">@color/backgroundColor_dark</item> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:datePickerStyle">@style/DatePicker_Dark</item> 
</style> 

<style name="DatePicker_Dark" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:background">@color/primaryColor_dark</item> 
    <item name="android:headerBackground">@color/colorAccent_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
</style> 

, 나는 새로운 무엇입니까 DatePickerDialog 등의 예는 다음과 같습니다

return new DatePickerDialog(getActivity(), this, year, month, day){ 
    @Override 
    public void onDateChanged(@NonNull DatePicker view, int year, int month, int dayOfMonth) { 
      onDateSet(view, year, month, dayOfMonth); 
      dismiss(); 
    } 
}; 

스냅 샷 : DatePicker

귀하의 도움에 감사드립니다. 감사!

+0

은 (는) 자바 파일을 공유합니다. –

답변

1

DatePicker 색상은 부모 테마의 선택입니다.

<!-- Theme.AppCompat.Light is not a dialog theme --> 
<style name="DialogTheme" parent="**Theme.AppCompat.Light**"> 
    <item name="colorAccent">@color/your_color</item> 
</style> 

DatePickerDialog() 위 테마에서 사용하십시오.

new DatePickerDialog(MainActivity.this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     //DO SOMETHING 
    } 
}, 2015, 02, 26).show(); 

해피 코딩 !!

+0

감사하지만 DatePickerDialog의 생성자에서 스타일을 전달하고 싶지 않습니다. 그러나 나는 내 모든 스타일을 간략하게하기 위해 나의 질문을 편집했다. – MilanG