github material-components/material-components-android 1.14.0

6 hours ago

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 minSdkVersion is 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)
  • CollapsingToolbarLayout
    • Fix jumping when multiline title changes while collapsed (d227870)
    • Make letter spacing dependent on text size in CollapsingTextHelper (58ad14e)
  • Checkbox
  • Chip
    • Added a show all Chip 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)
  • Color
    • Updated to only draw surface color under the button's stroke when the buttons are actually overlapped. (7ae12b5)
    • ColorResourcesTableCreator: Fix length encoding for utf8 strings (7c62429)
  • Dialog
    • Added m3 styles for floating toolbar and docked toolbar for dialog (1b58f5f)
    • Added Expressive styles. (0bd1749)
  • DockedToolbar
    • Added OverflowLinearLayout to support adaptive behavior of the floating and docked toolbars. (a12f17a)
  • ExposedDropdownMenu
    • Add keyboard support for dropdown menus (d8cc690)
    • Do not hide the dropdown on Enter/Space key presses when the popup is showing (8c17b08)
  • FloatingActionButton
    • 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)
  • FloatingToolbarLayout
    • Fixed HideOnScrollBehavior bugs where setViewEdge() can't be used because EDGE_ constants are package private, and also client's setViewEdge() was being overridden by the internal setViewEdge() behavior in onLayout() (08de7b0)
    • Fixed references to non-existent Expressive styles (aa6e952)
  • Focus 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 updateAppearance API 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)
  • LoadingIndicator
    • Added a default static drawable, which is displayed when the animation is disabled. (2ca567d)
    • Fixed the animation no constant rotation. (f300ba0)
    • Added showDelay and minHideDelay attribute. (ac82767)
    • Update documentation to align with Material 3 spec. (f30f5d8)
  • MaterialButton
    • Added filterTouchesWhenObscured=true to button layout. (2749544)
    • Fixed a bug that checked state 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 isRoundRectCornerMorph and pathDirty logic in MaterialShapeDrawable (9a8272d)
    • Always skip corner morph animation on bounds change in MaterialShapeDrawable. (ea9d250)
  • Menu
    • Fix context menu keyboard controls in Menu demo (fb26da6)
    • Update Menu Catalog Demo to use Ctrl + Enter for Context Menu (4852ebc)
    • Make context menu TextView focusable on Menu demo screen (8dd5a81)
    • Fix action menu position (d34429c)
  • NavigationRail
    • Updated to force NavigationFrameLayout to be the available size at the minimum (12fad1d)
  • NavigationView
    • Set navigation menu item's a11y role description so it doesn't default to 'radio button' due to being checkable (0e17248)
    • Request and restore focus when opened and closed in DrawerLayout (41cfb65)
    • Improve focus saving when opening NavigationView (f4652d6)
  • ProgressIndicator
    • Added Expressive styles. (34853f1)
    • Reorganized styles. (de1f5e1)
    • Fixed stop indicator size when changing track thickness (dadbfa4)
    • Updated to not throw exceptions for calling setIndeterminateDrawable and setDeterminateDrawable during 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)
  • SideSheet
    • Added support for enabling edge to edge via setFitsSystemWindows() (d754591)
    • Added tooltip to close buttons (414a1a6)
    • Improve keyboard navigation in SideSheet catalog demos (59f0fc5)
    • Prevent NullPointerException when viewRef was nullified and only then accessed by runAfterLayout lambda (88717fc)
  • Slider
    • 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)
  • Snackbar
    • Ignore bottom gesture inset if anchor view is specified to avoid infinite loop flicker (5853d72)
    • Added optional close icon (71f014f)
  • Tabs
    • 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)
  • Theming
    • Added missing Shape Attributes to Dialog themes (7fe9ef9)
    • Refactor Material3Expressive Dynamic Color Themes (fea726f)
    • Add missing M3 Expressive Dialog DayNight themes (da48227)
  • TimePicker
    • 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)
  • Tokens
    • Update token version to 31.0.0 (57f3cdb)
    • Replaced hardcoded style values with tokens (a6caf97)
    • Upgraded to 34.0.0 (4d37106)
  • Typography
    • Added emphasized typescale to public attributes (0c1a914)
  • Other
    • Updated compileSdkVersion to 35 (62f8561)
    • Update AGP version to 8.11.1 and Gradle version to 8.13 (9a29c12)
    • Restore binary compatibility (ViewOverlay) (a17e208)
    • Update minSdkVersion to 23 (cd3f114)
    • Remove obsolete multidex configuration (94364b3)

Full list of release notes

Full list of changes

1.13.0...1.14.0

Don't miss a new material-components-android release

NewReleases is sending notifications on new releases.