只有三星s7运行android 7.x
这是我的代码
DatePickerDialog datePickerDialog = new DatePickerDialog(activity
,new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year
, int monthOfYear
, int dayOfMonth) {
listener.onDateSet(year, monthOfYear, dayOfMonth);
}
}
,c.get(Calendar.YEAR)
, c.get(Calendar.MONTH)
, c.get(Calendar.DAY_OF_MONTH));
int firstDayOfWeek = TimeUtils.getFirstDayOfWeek(activity);
datePickerDialog.getDatePicker().setFirstDayOfWeek(firstDayOfWeek);
datePickerDialog.show();
有人建议我如何解决这个问题?
谢谢!
答案 0 :(得分:0)
您没有为对话框设置自定义样式,所以这是正常的(默认样式)。如果你想要"修复"这个" bug"你必须创建自定义样式对话框。
答案 1 :(得分:0)
对于我在同一设备上工作正常,我在我的应用程序中扩展DialogFrament并使用这样的代码:
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
}
然后在我需要打开对话框的视图上使用此方法:
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
尝试实施此操作或按照开发者网站上的指南操作: https://developer.android.com/guide/topics/ui/controls/pickers.html
答案 2 :(得分:0)
问题是DatePickerDialog
的UI的实际实现是特定于设备的,并且可能存在一些问题。
我在屏幕宽度小于360dp的设备上遇到了类似的问题。通过使用THEME_HOLO_LIGHT
主题修复此问题。
DatePickerDialog
有一个接受主题的构造函数:
DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
您可以使用以下其中一项: