样式 DatePickerDialog 选择器背景
Style DatePickerDialog selector background
有谁知道如何设置日期选择器周围黑框的样式,使其与我的 DatePickerDialog 的背景相匹配?
此处供参考的是我用于 AlertDialogs 的样式:
<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>
我通过为 Lollipop 之前的设备 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>
然后我使用构造函数创建一个 DatePicker/TimePicker,您可以在构造函数中为 pre-Lollipop 设备传递主题资源 ID:
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();
有谁知道如何设置日期选择器周围黑框的样式,使其与我的 DatePickerDialog 的背景相匹配?
此处供参考的是我用于 AlertDialogs 的样式:
<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>
我通过为 Lollipop 之前的设备 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>
然后我使用构造函数创建一个 DatePicker/TimePicker,您可以在构造函数中为 pre-Lollipop 设备传递主题资源 ID:
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();