How to Migrate to Material Components (MDC)
Material Components (MDC) is built by developers at Google (separate from the Android team) with intentions of helping developers build Material Design in their web and mobile-based apps. This is the next iteration of Material Design released in 2014.
Follow the steps mentioned below to migrate the app to use the Material Design Components instead of AppCompat or default UI components.
1) Add the Material Components dependency to the module level
build.gradle file.implementation 'com.google.android.material:material:1.1.0-alpha02'
2) In the styles.xml Replace
AppCompat with MaterialComponents. If you performed the action successfully then your base application theme will look like this. <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Points To Remember:
1) Adding the dependency alone won't let you add the Material Components to the layouts, you need to change the theme in the
styles.xml to use Material Components theme otherwise the app crashes with an IllegalArgumentException.Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
2) If you are currently using
AppCompat support libraries, you need to migrate to androidx dependencies. Combined use of com.android.support and com.google.android.material will throw Manifest merger failed as the Material Components internally use androidx packages.
3)
compileSdkVersion needs to be set to a minimum of 28 to avoid getting resource linking failed error since resources like dialogCornerRadius, fontVariationSettings and ttcIndex are missing.