-1

I am facing an error message which triggers whenever I click in a MaterialDatePicker. I think it is related with the ThemeOverlay but I have no idea how can I get rid of it.

This is the error message:

Process: sergirex.portadasperiodicos, PID: 1900
                                                                                                    android.view.InflateException: Binary XML file line #23 in sergirex.portadasperiodicos:layout/mtrl_picker_dialog: Binary XML file line #26 in sergirex.portadasperiodicos:layout/mtrl_picker_header_title_text: Error inflating class TextView
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #26 in sergirex.portadasperiodicos:layout/mtrl_picker_header_title_text: Error inflating class TextView
                                                                                                    Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 5: TypedValue{t=0x2/d=0x7f040109 a=23}, theme={InheritanceMap=[id=0x7f120492sergirex.portadasperiodicos:style/MaterialCalendarTheme, id=0x7f120300sergirex.portadasperiodicos:style/ThemeOverlay.MaterialComponents.MaterialCalendar, id=0x7f1202f4sergirex.portadasperiodicos:style/ThemeOverlay.MaterialComponents.Dialog, id=0x7f120088sergirex.portadasperiodicos:style/Base.ThemeOverlay.MaterialComponents.Dialog, id=0x7f1200a1sergirex.portadasperiodicos:style/Base.V14.ThemeOverlay.MaterialComponents.Dialog, id=0x7f1202a1sergirex.portadasperiodicos:style/ThemeOverlay.AppCompat.Dialog, id=0x7f120080sergirex.portadasperiodicos:style/Base.ThemeOverlay.AppCompat.Dialog, id=0x7f1200adsergirex.portadasperiodicos:style/Base.V21.ThemeOverlay.AppCompat.Dialog, id=0x7f1200c2sergirex.portadasperiodicos:style/Base.V7.ThemeOverlay.AppCompat.Dialog, id=0x7f12007csergirex.portadasperiodicos:style/Base.ThemeOverlay.AppCompat, id=0x7f120141sergirex.portadasperiodicos:style/Platform.ThemeOverlay.AppCompat], Themes=[sergirex.portadasperiodicos:style/MaterialCalendarTheme, forced, sergirex.portadasperiodicos:style/AppThemeDark, forced, sergirex.portadasperiodicos:style/SplashTheme, forced, sergirex.portadasperiodicos:style/Theme.AppCompat.Empty, forced, android:style/Theme.DeviceDefault.Light.DarkActionBar, forced]}
                                                                                                        at android.content.res.TypedArray.getColorStateList(TypedArray.java:600)
                                                                                                        at android.widget.TextView.readTextAppearance(TextView.java:4301)
                                                                                                        at android.widget.TextView.<init>(TextView.java:1275)
                                                                                                        at android.widget.TextView.<init>(TextView.java:1170)
                                                                                                        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:113)
                                                                                                        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:108)

It only happens only in the AppThemeDark. Here it is my style sheet:

<style name="AppTheme" parent="Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        ....
</style>
<style name="AppThemeDark" parent="ThemeOverlay.MaterialComponents.Dark">
        <!-- Customize your theme here. -->
        <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
        <item name="colorPrimary">@color/background_material_dark</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
       ....
</style>
<style name="MaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
        <!-- Buttons -->
        <item name="buttonBarPositiveButtonStyle">@style/TextButton</item>
        <item name="buttonBarNegativeButtonStyle">@style/TextButton</item>
    </style>
    <style name="TextButton" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="android:textColor">@android:color/white</item>
    </style>

And this is the Java class:

MaterialDatePicker<Long> datePicker = MaterialDatePicker.Builder
                    .datePicker().setTheme(R.style.MaterialCalendarTheme)
                    .setTitleText("Select date").setSelection(today)
                    .build();
            datePicker.show(getSupportFragmentManager(), "MATERIAL_DATE_PICKER");

I was trying to pop up a MaterialDatePicker in my main activity.

1 Answer 1

0

I fixed changing the app theme to Theme.Material3.Dark and adding custom styles in it.

Not the answer you're looking for? Browse other questions tagged or ask your own question.