2017-09-13 11 views
0

누구든지 내 DatePickerDialog의 배경과 일치하도록 날짜 선택기를 둘러싼 블랙 박스를 스타일 화하는 방법을 알고 있습니까?스타일 DatePickerDialog 선택기 배경

<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:colorBackground">@android:color/white</item> 
    <item name="colorAccent">@color/group_blue_800</item> 
    <item name="android:textColorPrimary">@color/secondary_text</item> 
    <item name="android:textColor">@color/primary_text</item> 
    <item name="android:lineSpacingMultiplier">1.2</item> 
    <item name="colorControlNormal">@android:color/white</item> 
    <item name="colorPrimary">@android:color/white</item> 
    <item name="colorPrimaryDark">@android:color/white</item> 
</style> 
+0

사전 롤리팝 디자인을 계속 사용하거나 자료를 원하십니까? 나는 여기에서 찾을 수있는'DatePickerDialog'와'TimePickerDialog'의 공식 프레임 워크 (8.0, Oreo) 버전을 백 포트했습니다 : [https://github.com/Gericop/DateTimePicker](https://github.com/Gericop)/DateTimePicker) 피커가 API 14+ 기기에서 재질 디자인을 갖도록합니다. –

+0

API 레벨 21 이상의 기기에 이미 새로운 소재 디자인 버전을 사용하고 있습니다.하지만 기존 스타일 덕분에 프리 롤리팝 디자인에서 이러한 문제가 발생했습니다. 나는 아래에서 찾을 수있는 미리 사탕 과치 장치에서 사용할 수있는 새로운 스타일을 만들어서이 문제를 해결했습니다. 조언 해주셔서 감사합니다! – Coopra

+0

그렇기 때문에 앱 전체에서 머티리얼 디자인을 사용하는 경우 프레임 워크 버전을 백 포트 된 버전으로 '업그레이드'하여 21+ 만 아니라 모든 API 수준에서 머티리얼 디자인을 사용하는 것이 좋습니다. 그러나 선택은 당신 것입니다. 나는이 백 포트를 만들었습니다. 오래된 홀로그램 스타일의 대화 상자는 완전히 구체화 된 내 응용 프로그램과 상당히 유사하게 보이지 않기 때문입니다. –

답변

0

내가 미리 롤리팝 장치에 대한 DatePickers/TimePickers에 대한 독립형 스타일 작성하여이를 해결 :

<style name="PreLollipopDatePickerStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="android:lineSpacingMultiplier">1.2</item> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:windowIsFloating">true</item> 
     <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
     <item name="android:windowBackground">@android:color/white</item> 
     <item name="android:colorBackground">@android:color/white</item> 
     <item name="android:textColorPrimary">@color/secondary_text</item> 
     <item name="android:textColorSecondary">@color/secondary_text</item> 
     <item name="android:textColor">@color/primary_color</item> 
     <item name="colorAccent">@color/group_blue_800</item> 
    </style> 
여기에 참고로 Broken DatePickerDialog

내가 AlertDialogs을 위해 사용하고 스타일이다

그런 다음 사전 Lollipop 기기에 대한 테마 리소스 ID를 전달하는 생성자를 사용하여 DatePicker/TimePicker를 만듭니다.

DatePickerDialog datePickerDialog; 
if (AndroidUtils.isLollipop()) { 
    datePickerDialog = new DatePickerDialog(
     getActivity(), 
     new EndDateTimeSelectedListener(), 
     endDateTimeExclusive.get(Calendar.YEAR), 
     endDateTimeExclusive.get(Calendar.MONTH), 
     endDateTimeExclusive.get(Calendar.DAY_OF_MONTH)); 
} else { 
    datePickerDialog = new DatePickerDialog(
     getActivity(), 
     R.style.PreLollipopDatePickerStyle, 
     new EndDateTimeSelectedListener(), 
     endDateTimeExclusive.get(Calendar.YEAR), 
     endDateTimeExclusive.get(Calendar.MONTH), 
     endDateTimeExclusive.get(Calendar.DAY_OF_MONTH)); 
} 

datePickerDialog.show();