这是我的情况,您可以从MaterialComponents.DatePicker库中看到一个daterangepicker。选择日期的圆圈很多。在您提出任何建议之前,我尝试将日期范围选择器更改为全屏模式而不是对话框,所有问题仍然存在。这就是说,如果您想在全屏模式下进行更改,对我来说很好。顺便说一下,日期选择器所在的片段居中。
我不知道他从哪里得到的颜色,所以如果有人知道在哪里或如何更改,请告诉我。另外,在我的colors.xml中找不到无处显示的紫色]
现在,代码:这是我的Datepicker(通过选项菜单按钮调用):
MaterialDatePicker.Builder dateBuilder = MaterialDatePicker.Builder.dateRangePicker(); CalendarConstraints.Builder constraintsBuilder = new CalendarConstraints.Builder(); dateBuilder.setCalendarConstraints(constraintsBuilder.build()); dateBuilder.setTitleText("Select your Dates"); dateBuilder.setTheme(R.style.DatePickerTheme); MaterialDatePicker<Pair<Long, Long>> datePicker = dateBuilder.build(); datePicker.addOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { Log .d("DatePicker Activity", "Dialog was cancelled"); } }); datePicker.addOnNegativeButtonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("DatePicker Activity", "Dialog Negative Button was clicked"); } }); datePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Pair<Long, Long>>() { @Override public void onPositiveButtonClick(Pair<Long, Long> selection) { Log.d("DatePicker Activity", "Date String = ${picker.headerText}:: Date epoch values::${it.first}:: to :: ${it.second}"); SharedPreferences sharedPreferences = getActivity().getSharedPreferences("Settings", Context.MODE_PRIVATE); SharedPreferences.Editor sEditor = sharedPreferences.edit(); sEditor.putLong("Start Date", selection.first); sEditor.putLong("End Date", selection.second); Toast.makeText(getActivity(), "Primeiro:" + selection.first.toString() + "SEgundo:" + selection.second.toString(), Toast.LENGTH_LONG).show(); } }); assert getFragmentManager() != null; datePicker.show(getFragmentManager(), "RangePicker");
这是我的styles.xml :(很多人建议将样式放到AppTheme中,而我做不到!)
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <!-- Picker styles and themes. --> <style name="DatePickerTheme" parent="Theme.MaterialComponents.DayNight"> <item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item> <item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item> <item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item> </style> </resources>
这是我的情况,您可以从MaterialComponents.DatePicker库中看到一个daterangepicker。选择日期的圆圈很多。在您提出任何建议之前,我都尝试过...