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.