New in 1.14.0!
- Expressive Themes (doc)
- Expressive Lists (doc)
- Expressive Button Styles (doc)
- Expressive Icon Button Styles (doc)
- Expressive Button Group Styles (doc)
- Expressive FAB Styles (doc)
- Expressive Top App Bar Styles (doc)
- Expressive Navigation Bar (BottomNavigationView) Styles (doc)
- Expressive Navigation Rail Styles (doc)
- Expressive Search Styles (doc)
- Expressive Progress Indicator Styles (doc)
- Expressive Slider Styles (doc)
- Emphasized Typescale (doc)
Important
- Required
minSdkVersionis now 23 or higher, for Material and AndroidX. - Library is now built with Android Gradle Plugin (AGP) 8.11.1 and Gradle 8.13.
Dependency Updates
| Dependency | Previous version | New version |
|---|---|---|
| androidx.constraintlayout:constraintlayout | 2.1.0 | 2.2.1 |
| androidx.core:core | 1.6.0 | 1.16.0 |
| androidx.customview:customview | N/A | 1.2.0 |
| com.android.tools.build:gradle | 8.7.3 | 8.11.1 |
Library Updates
AppBar- Fixed the bug that setBackground will reset the internal MaterialShapeDrawable for lift-on-scroll feature. (1adc501)
- Add support for navigation button with circle background (015e053)
- Improve keyboard navigation in TopAppBar catalog demos (98a73a6)
- Removed special key shortcut and keyboard navigation cluster for top app bar for correct keyboard navigation a11y. (ee52adb)
- Updated ripple color on actions in M3 toolbar. (3b971c9)
BottomAppBar- Remove special key shortcut and keyboard navigation cluster for bottom app bar for correct keyboard navigation a11y. (5c73d7a)
BottomNavigationView- Fix navigation item layout in non-compact windows (7818901)
BottomSheet- Deprecated enableEdgeToEdge for bottom sheet dialogs on API 35+. (603f1ef)
- Prevent ACTION_DOWN events on the BottomSheetHandleDragView from setting touchingScrollChild to true. (af7f254)
- Fixed keyboard animation on Android 14 (a0b4dfa)
- Fixed crash when protections are set before setContentView is called (d211909)
- Added half-expanded state description for accessibility (95e7b45)
- Added support for androidx.core ProtectionLayout API and update dependency to 1.16 (e7f9f63)
- Make handle respond to keyboard input (1ee0768)
- Delete duplicate "Handling insets and fullscreen" section (5e7e823)
- Added support for Nested Scrolling with multiple nested scroll children. (4e4e8f3)
- Make behavior_draggableOnNestedScroll public (a67afdf)
- Add tooltip text for drag handle (38db2e8)
- Update a11y actions and drag handle click to not include collapsed state if skipCollapsed=true && hideable=true (c4871f4)
- Auto-expand when a focused view is off-screen in non-touch mode (d6de1da)
CollapsingToolbarLayoutCheckbox- Updated translations. (7711191)
Chip- Added a
show allChip for a11y (8e33421, 1fe726f, de1ff7c) - Get default minTouchTargetSize from material attributes (ae68654)
- Fix close icon tint (09e77fa)
- Fixed fontVariationSettings from TextAppearance being overwritten in ChipDrawable. (de5730e)
- Added support for variable font axes (fb7ae01)
- Fixed chip group forcing importantForAccessibility=yes (1867bb0)
- Added a
ColorDialogDockedToolbar- Added OverflowLinearLayout to support adaptive behavior of the floating and docked toolbars. (a12f17a)
ExposedDropdownMenuFloatingActionButton- Fixed labelOpacity property (6b41a60)
- Fixed typos in comments (2f79f31)
- Fixed the width calculation in the wrap_content extend strategy (a3a7d86)
- Use the current labelOpacity as the initial animation value (1b08336)
- Allow collapsed size to be set (0153138)
- Override setContentDescription to also set the tooltip text on API 26+ (f1193e3)
- Added tooltip label to FAB and eFAB (ba4875a)
FloatingToolbarLayoutFocus Rings- Add FocusRingDrawable and integrate it into theme-level drawables (disabled by default) (dcebdb4)
- Remove focus ring drawables from library themes (cba50c9)
- Add default item and control drawables to the M3 themes (db1cf64)
- Integrate FocusRingDrawable into components (disabled by default) (24693b1)
- Add animation to FocusRingDrawable (f7e6715)
- Update FocusRingDrawable state copy constructor to do deep copy of shape appearance (8a07a1a)
- Add support for common Framework and AppCompat component focus rings (ca90045)
- Move toolbar FocusRingDrawable usages from main themes to .FocusRings themes (8ecb378)
- Fix theme attribute resolution for FocusRingDrawable attributes (59acbba)
- Add ThemeOverlay.NoFocusRingDrawables to support reverting theme drawables back to defaults with no drawable class inflation (27150aa)
- Add .FocusRings versions M3 Expressive, M3, and M2 themes (4626574)
- Fix shape appearance mutate / constant state issue with Carousel items (MaskableFrameLayout) (8c2294d) * Add FocusRingDrawable findAndMutate() helper for the LayerDrawable / DrawableWrapper case (e6f43e5)
- Fix focus ring not showing up for Exposed Dropdown Menu selected item (df99005)
- Add getter and setter for FocusRingDrawable radius (6da4b0f)
- Add focus rings to MaterialDatePicker day and year items (c0c4af7)
- Update FocusRingDrawable to automatically construct its ShapeAppearance from a child ShapeDrawable or GradientDrawable (ed6fee1)
- Update FocusRingDrawable to hide focus ring when no window focus (3774ef7)
- Remove the default theme-level drawables from the M3 themes (8e471d9)
- Better fallbacks for FocusRingDrawable attr values if not set in theme or drawable xml (63dba4c)
- Add setters for outer and inner stroke colors and for refreshing shape appearance based on wrapped drawable (14b9ac9)
- Add setters and getters for stroke widths and inner inset (12e57b5)
Lists- Updating List catalog demo to spec (c388920)
- Added segmented list style, public attrs, and catalog demos (ab86a01)
- Introduce ListItemLayout and ListItemViewHolder with catalog demo (3c332f9)
- Added Multi section ListItemViewHolder bind method and demo (babc9fc)
- Add selector for optional leading icon (14a6267)
- Added dependency to androidx.customview for ViewDragHelper and added swiped states + settling (1e6a8b7)
- Fixed issue where the first drag may have not clamped to the end properly since originalContentLeft is 0 (a5be0f7)
- Added ListItemRevealLayout, ListItemCardView, and relevant interfaces to introduce swiping in ListItemLayout (400d695)
- Added ViewDragHelper (3236292)
- Add attr for min child width (32e9fb2)
- Support RTL swiping (176e92d)
- Added onSwipeStateChanged callback, drawable swiped state for ListCardView, and alpha changes to swiped view as it reaches the swipe-to-action state (3e5a7fd)
- Add styles for control elements in lists (3c1a61c)
- Re-measure intrinsic width when measure specs change (69e9676)
- Add more optional styles and update demos to show more variety of sample list content (692bd11)
- Add swipe for action state (07a3be5)
- Support skipping the open swipe state so clients can go straight to the primary action (d5934ee)
- Add getSwipeState method and demo, and refactored to set necessary swipe elements before drag so they are available for programmatic swipes (75f0a4e)
- Updates to styles (50bca32)
- Create expandable demo (c24017b)
- Make SwipeableListItem and RevealableListItem public and add swipe state callback (1dbfdd7)
- Add styles and theme overlays for material icon buttons inside lists (93ae730)
- Update state colors for label styles and update demos so ListItemCardView children will duplicate and pass on its parent state (845a0e3)
- Support start/end reveal gravity in ListItemLayout (504300d)
- Added
updateAppearanceAPI to Lists docs (86fc2d8) - Fixed base ListItemCardView style to prevent adding additional padding when shape is not round (3fffd5c)
- Token integration (ac4f111)
- Added API to update list shape explicitly (21060b2)
LoadingIndicatorMaterialButton- Added filterTouchesWhenObscured=true to button layout. (2749544)
- Fixed a bug that
checkedstate in XML was not respected. (0c5b17a) - Improved memory usage when materialSizeOverlay is used. (571a196)
- Updated split button styles to lessen maker specification requirements and support consistency. (2aadbd1)
- Added a demo to programmatically add/remove buttons in a button group. (4f55422)
- Added a click action and toggleable control in button group demo. (8e52e94)
- Fixed minor issues in button group demo and toggle group demo. (5161e71)
- Updated the shapes of buttons when the orientation is changed. (bbd942c)
- Fixed connected button groups to not morph button size. (0e6d4f4)
- Fixed width morph in vertical button groups. (6d8d750)
- Fixed checked non-checkable button not recover shape and container color (7df9b07)
- Overflow menu item's text should be CharSequence (7428b2b)
- Use button's text or content description as default menu item text. (fa0e908)
- Added overflow feature. (981877d)
- Update corner radius behavior to override StateListShapeAppearance if set (85e2fd0)
- Added the "wrap" overflow mode. (7c66a2e)
- Fixed width morph with contents change. (dc98ca0)
- Defer icon changes during width animation in MaterialButton (f86cedd)
- Add support for a secondary icon (fa56dd6 4bb9acd)
- Fix click sound for checkable button (499350d)
- Added secondaryIconTint to Material3 Text and Elevated Button styles. (65e43a0)
- Remove unnecessary layout param recovery in MaterialButtonGroup. (a87e102)
- Fix close button style in M2 snackbar (99411b1)
- Fix inset and optical centering issue for SplitButton in RTL. (fd44c9d)
- Add getters and setters for left/right insets to MaterialButton (0c2d842)
MaterialCardView- Allow selection using keyboard (e889bc2)
- Support StateListShapeAppearance in MaterialCardView (2f0935a)
- Adds keyboard drag and drop support to the card demo fragment (11fafd9)
- Add drawable states that MaterialCardView should still respect, even if duplicating its parent state (c99cba6)
- Updated card swipe dismiss string to clarify key names on the demo screen (5c0e8dd)
- Added keyboard and accessibility dismiss support to CardSwipeDismissFragment (fbb3320)
MaterialDatePicker- Replaced deprecated announcement API with accessibility pane title (787ad71)
- Avoid re-creating text input picker fragment on configuration changes (f843ab0)
- Set cursor to end of input text field when input is opened (65e7d8a)
- Replaced the deprecated announcement API used for month navigation (91e6a97)
- Enable autosizing for day of week labels (3e5c1a8)
- Fix Talkback issues with the hint text by adding a TtsSpan.TYPE_VERBATIM so that the hints are read as verbatim text by screen readers. (7c162ef)
- Fix TAB keyboard trap and add DPAD month navigation. (757f9f3)
- Add MonthAdapter helpers for finding enabled days (a207114)
- Cache isFullscreen state in MaterialCalendar (dcd9898)
- Add tooltips to icon buttons (1fd35bc)
MaterialShapeDrawable- Updated ShapeAppearanceModel.Builder to not use extra ContextThemeWrapper for shape appearance overlay due to performance concerns (d16a193)
- Introduce ShapeAppearance interface to reduce branching between ShapeAppearanceModel and StateListShapeAppearanceModel (4db1900)
- Fix header layout overlapping in landscape (223bf15)
- Fixed MaterialShapeDrawable#isRoundRect to use state-aware shape appearance. (3482899)
- Optimized path calculation in MaterialShapeDrawable. (bbd1292)
- Updated
isRoundRectCornerMorphandpathDirtylogic in MaterialShapeDrawable (9a8272d) - Always skip corner morph animation on bounds change in MaterialShapeDrawable. (ea9d250)
MenuNavigationRail- Updated to force NavigationFrameLayout to be the available size at the minimum (12fad1d)
NavigationViewProgressIndicator- Added Expressive styles. (34853f1)
- Reorganized styles. (de1f5e1)
- Fixed stop indicator size when changing track thickness (dadbfa4)
- Updated to not throw exceptions for calling
setIndeterminateDrawableandsetDeterminateDrawableduring the initialization. (e39f765) - Added APIs for customizing wave amplitude ramping. (24cddab)
- Moved showDelay and minHideDelay attrs to resources module. (90a1f22)
- Added an API to automatically hide the indicator after it reaches max progress. (4c74b80)
- Updated SpringAnimation's minimum visible change and added APIs to customize spring force in DeterminateDrawable. (659e3bc)
Search- Added attribute to control when to impose max width based on a percentage of available width in parent (43f2b90)
- Updated centered search bar text to have 8dp content start and end padding (4070bef)
- Added a clip bounds animation for searchview edit text (5a600a8)
- Added a placeholder textview to Searchbar that keeps track of searchview edit text in order to gracefully fade it out in searchview collapse animation (be09936)
- Added Expressive styles. (0b578fd)
- Updated centering layout logic to account for padding and content insets (c2c660b)
- Set touchscreenBlocksFocus to false to enable keyboard navigation between searchview (ef95e93)
- Allowed keyboard navigation between searchbar and other components (d06eed1)
- Blocked keyboard focus on other views when SearchView is open (9366a84)
- Make SearchView root unfocusable (f307771)
- Hide search view divider for M3E (81373b7)
- Updated search padding and background color to match specs (27c26f8)
- Implemented M3E styles for SearchView (db3298e)
- Introduced AnimationCoordinator (299bfa5)
- Prevent shape animation from being skipped on bounds change if an animation is running. (9c5ccb7)
- Sync SearchBar text and placeholder for contained animations (251f906)
- Vertically align search view toolbar with search bar (84ece98)
- Do not run default animation start/end logic for contained animation (fb6928c)
- Expand animation for contained style - exterior icons translation (4dd2666)
- Do not translate toolbar buttons after predictive back gesture (1b44a73)
- Expand animation for contained style - text transition (12aadbd)
- Expand animation for contained style - text translation (24de0f0)
- Expand animation for contained style - action menu items fade (e46bc86)
- Expand animation for contained style - toolbar expansion (c76b38d)
- Expand animation for contained style - content fade (7302ffb)
- Refactored expressive search view styles to AppBarWithSearch (0923150)
- Cancel pending animations when a new one is starting (41ace81)
- Only inflate dummy toolbar if search bar has visible items (cec516b)
- Fix animation when RTL is enabled (a9e592a)
- Fix toolbar navigation button and menu item translation in default animation (803a060)
- Update docs related to expressive SearchView (cd076b0)
- Fix text alignment in M3E SearchBar (43e3781)
- Add default M3E searchViewStyle (e6f6bd3)
- Make sure IME is hidden when EditText loses focus (e6ae416)
- Sync dummy text view with text and hint changes in SearchView (87b98eb)
SideSheetSlider- Fixed label bounds for vertical slider in RTL (23957e0)
- Added Expressive styles. (3a29699)
- Centered Slider Expressive updates (781d344)
- Reorganized styles. (72d011d)
- Added ability to specify purely visual tick count in continuous mode (e62e66d)
- Prevent duplicate accessibility announcements (ab52e6a, 917ce60)
- Get default minTouchTargetSize from material attributes (9ae6b7f)
- Changed thumb width when it's keyboard focused. (1bf522f)
- Fixed slider D-Pad keys to modify value instead of focus (aa623f0)
- Updated: only one value label should be shown at a time for the range slider (except for the mode where the labels are always visible). (ce092fa)
- Used arrow keys for value adjustment and TAB for navigation (3d8d23d)
- Fix ACTION_CANCEL motion touch event handling so that the slider resets its state if a cancel happens. Also don't let slider update incorrectly when a touch event may be overlapping with back gesture inset areas, as the back event takes precedence. (c4d19f6)
- Adjust thumb-track gap only for the pressed thumb (0b669da)
- Fix D-Pad focus trap on horizontal sliders (7fc1c4f)
- Fixed TalkBack focus bounds not updating after keyboard navigation (c197ba5)
- Fix BaseSlider crash in calculateTrackCenter() when labels list is empty (dd713b6)
- Change BaseSlider onLayout override from public to protected to match super (889a391)
- Set a minimum accessibility touch target size of 48dp for Voice Access (ac5a6d3)
SnackbarTabs- Updated to not detach an already detached TabLayout (6b35213)
TextInputLayout- Replaced deprecated announceForAccessibility with accessibility live region (d438f09)
- Add tooltip support to TextInputLayout icons (c7fa5dc)
- Announce helper text on focus (85c910f)
- Fixed paddingEnd being ignored when end icon is visible (5c46f3c)
- Fix focus loss when clear text icon is hidden (63801c0)
ThemingTimePicker- Set accessibilityDelegate for time announcement when editing (b5aee66, 2d73a5d)
- Fixed setting time incorrectly in TimeFormat.CLOCK_12H (167451b)
- Default to text input mode in landscape (dcfe2ee)
- Add toggle button, split button, and time picker AM/PM sound effects. (3625174)
- Add keyboard support to clock input mode (089372f)
- Accessibility focus on error (9d8506a)
- Fix error beep sound (5f7634f)
- Error handling update (d241d48)
- Error handling update (d2cce65)
- Add tooltip to MaterialTimePicker mode toggle button (e69709f)
- Fixed accessibility announces stale data in TimePicker input (4050857)
- Updated error colors (00a64e2)
- Use ViewCompat.performHapticFeedback (6c4db77)
- Fix ClockFaceView cropping in split-screen (71d88f5)
- Make "PM" touch target 48dp (019d44e)
TokensTypography- Added emphasized typescale to public attributes (0c1a914)
Other
Full list of release notes
- 1.14.0-alpha01
- 1.14.0-alpha02
- 1.14.0-alpha03
- 1.14.0-alpha04
- 1.14.0-alpha05
- 1.14.0-alpha06
- 1.14.0-alpha07
- 1.14.0-alpha08
- 1.14.0-alpha09
- 1.14.0-alpha10
- 1.14.0-beta01
- 1.14.0-rc01