Android 中的 DatePickerDialog 呈现问题
DatePickerDialog rendering issue in Android
我正在使用以下代码显示日期选择器对话框:
DatePickerDialog dialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
mDateOfJourney.set(year, monthOfYear, dayOfMonth);
if (mDateOfJourney.after(mCalendar) || mDateOfJourney.equals(mCalendar))
{
setJourneyDateView(mDateOfJourney);
} else {
Toast.makeText(getActivity(), getString(R.string.invalid_date), Toast.LENGTH_SHORT).show();
}
}
}, mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH));
dialog.getDatePicker().setMinDate(mCalendar.getTimeInMillis());
dialog.show();
此代码的输出存在一些渲染问题:显示如下:
上图中,window的背景为空。查看您应用的样式定义。你可能会在某处找到这个:
<item name="android:windowBackground">@null</item>
否则,您可能已将 window 的背景设置为 null
:getWindow().setBackgroundDrawable(null)
。
据我所知,唯一为您设置此属性的主题是 Theme.NoDisplay
。因此,如果您不使用此主题作为基础(或按原样使用),则必须使用不同的主题。
我正在使用以下代码显示日期选择器对话框:
DatePickerDialog dialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
mDateOfJourney.set(year, monthOfYear, dayOfMonth);
if (mDateOfJourney.after(mCalendar) || mDateOfJourney.equals(mCalendar))
{
setJourneyDateView(mDateOfJourney);
} else {
Toast.makeText(getActivity(), getString(R.string.invalid_date), Toast.LENGTH_SHORT).show();
}
}
}, mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH));
dialog.getDatePicker().setMinDate(mCalendar.getTimeInMillis());
dialog.show();
此代码的输出存在一些渲染问题:显示如下:
上图中,window的背景为空。查看您应用的样式定义。你可能会在某处找到这个:
<item name="android:windowBackground">@null</item>
否则,您可能已将 window 的背景设置为 null
:getWindow().setBackgroundDrawable(null)
。
据我所知,唯一为您设置此属性的主题是 Theme.NoDisplay
。因此,如果您不使用此主题作为基础(或按原样使用),则必须使用不同的主题。