MaterialComponents.DatePicker日选择器圈出关闭位置以及如何更改颜色?

问题描述 投票:0回答:2

这是我的情况,您可以从MaterialComponents.DatePicker库中看到一个daterangepicker。选择日期的圆圈很多。在您提出任何建议之前,我尝试将日期范围选择器更改为全屏模式而不是对话框,所有问题仍然存在。这就是说,如果您想在全屏模式下进行更改,对我来说很好。顺便说一下,日期选择器所在的片段居中。

我不知道他从哪里得到的颜色,所以如果有人知道在哪里或如何更改,请告诉我。另外,在我的colors.xml中找不到无处显示的紫色]

enter image description here

现在,代码:这是我的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。选择日期的圆圈很多。在您提出任何建议之前,我都尝试过...

android android-studio android-datepicker android-components android-material
2个回答
0
投票

如果要在应用程序中使用材料组件。然后您的AppTheme需要扩展MaterialComponents父主题


0
投票

the doc中所述,您必须使用材料组件主题

© www.soinside.com 2019 - 2024. All rights reserved.