Android Nougat未将日历显示为微调器视图

Android Nougat未将日历显示为微调器视图,android,android-calendar,Android,Android Calendar,我在《牛轧糖》(API 24)中遇到了一个问题,即日历并没有显示为旋转器,但直到(API 23)它才正常工作。 我用的是这种风格 <style name="MyDatePicker" parent="android:Widget.Material.DatePicker"> <item name="android:datePickerMode">spinner</item> <item name="android:calendarView

我在《牛轧糖》(API 24)中遇到了一个问题,即日历并没有显示为旋转器,但直到(API 23)它才正常工作。 我用的是这种风格

<style name="MyDatePicker" parent="android:Widget.Material.DatePicker">
    <item name="android:datePickerMode">spinner</item> 
    <item name="android:calendarViewShown">false</item> 
</style>

纺纱机
假的

尝试将父主题更改为holo,以代替材质主题

<style name="MyDatePicker" parent="android:Theme.Holo.Dark">

我发现的唯一方法是通过XML将其膨胀。我有一个
对话框片段
,下面是适合我的代码:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:orientation="vertical" android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <DatePicker
            android:id="@+id/date_picker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:datePickerMode="spinner" />

        <Button
            android:id="@+id/ok"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@android:string/ok"
            style="@style/Cerhis.Widget.AppCompat.Button.Base" />

    </LinearLayout>
</layout>

尝试将父主题更改为holo light或holo darkHi Karan Mer it't not work for Nout Calendar not Showed微调器视图尝试将其添加到xml
datePickerMode=“spinner”
public class DatePickerDialogFragment extends BaseDialogFragment {

    ...

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = DataBindingUtil.inflate(inflater, R.layout.date_picker_dialog, container, false);

        final Calendar c = Calendar.getInstance();
        if(defaultDate != null)
            c.setTime(defaultDate);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        binding.datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker datePicker, int year, int month, int day) {
                onDateSet(datePicker, year, month, day);
            }
        });

        if (!futurePossible)
            binding.datePicker.setMaxDate(new Date().getTime());

        binding.ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dismissWithUserInteraction();
                if (mListeners != null) {
                    for (DatePickerListener listener : mListeners)
                        listener.onDateSet(selectedDate, dialogId);
                }
            }
        });

        return binding.getRoot();
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = new Dialog(getContext(), R.style.Cerhis_Dialog);
        if(dialog.getWindow() != null)
            dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        return dialog;
    }

    ...
}