Posted by Jolanda Verhoef – Developer Relations Engineer
At the moment, as a part of the Compose April ‘25 Invoice of Supplies, we’re releasing model 1.8 of Jetpack Compose, Android’s trendy, native UI toolkit, utilized by many builders. This launch accommodates new options like autofill, varied textual content enhancements, visibility monitoring, and new methods to animate a composable’s measurement and site. It additionally stabilizes many experimental APIs and fixes quite a lot of bugs.
To make use of at present’s launch, improve your Compose BOM model to 2025.04.01 :
implementation(platform("androidx.compose:compose-bom:2025.04.01"))
Be aware: If you’re not utilizing the Invoice of Supplies, be certain that to improve Compose Basis and Compose UI on the similar time. In any other case, autofill is not going to work appropriately.
Autofill
Autofill is a service that simplifies knowledge entry. It permits customers to fill out varieties, login screens, and checkout processes with out manually typing in each element. Now, you possibly can combine this performance into your Compose purposes.
Establishing Autofill in your Compose textual content fields is easy:
TextField( state = rememberTextFieldState(), modifier = Modifier.semantics { contentType = ContentType.Username } )
For full particulars on how one can implement autofill in your utility, see the Autofill in Compose documentation.
Textual content
When putting textual content inside a container, now you can use the autoSize parameter in BasicText to let the textual content measurement robotically adapt to the container measurement:
Field { BasicText( textual content = "Howdy World", maxLines = 1, autoSize = TextAutoSize.StepBased() ) }

You’ll be able to customise sizing by setting a minimal and/or most font measurement and outline a step measurement. Compose Basis 1.8 accommodates this new BasicText overload, with Materials 1.4 to comply with quickly with an up to date Textual content overload.
Moreover, Compose 1.8 enhances textual content overflow dealing with with new TextOverflow.StartEllipsis or TextOverflow.MiddleEllipsis choices, which let you show ellipses in the beginning or center of a textual content line.
val textual content = "It is a lengthy textual content that can overflow" Column(Modifier.width(200.dp)) { Textual content(textual content, maxLines = 1, overflow = TextOverflow.Ellipsis) Textual content(textual content, maxLines = 1, overflow = TextOverflow.StartEllipsis) Textual content(textual content, maxLines = 1, overflow = TextOverflow.MiddleEllipsis) }

And at last, we’re increasing assist for HTML formatting in AnnotatedString, with the addition of bulleted lists:
Textual content(
AnnotatedString.fromHtml(
"""
“””.trimIndent()
)
)

Visibility monitoring
Compose UI 1.8 introduces a brand new modifier: onLayoutRectChanged. This API solves many use instances that the present onGloballyPositioned modifier does; nevertheless, it does so with a lot much less overhead. The onLayoutRectChanged modifier can debounce and throttle the callback per what the use case calls for, which helps with efficiency when it’s added onto an merchandise in LazyColumn or LazyRow.
This new API unlocks options that rely upon a composable’s visibility on display screen. Compose 1.9 will add higher-level abstractions to this low-level API to simplify widespread use instances.
Animate composable bounds
Final 12 months we launched shared component transitions, which easily animate content material in your apps. The 1.8 Animation module graduates LookaheadScope to secure, consists of quite a few efficiency and stability enhancements, and features a new modifier, animateBounds. When used inside a LookaheadScope, this modifier robotically animates its composable’s measurement and place on display screen, when these change:
Field( Modifier .width(if(expanded) 180.dp else 110.dp) .offset(x = if (expanded) 0.dp else 100.dp) .animateBounds(lookaheadScope = this@LookaheadScope) .background(Colour.LightGray, form = RoundedCornerShape(12.dp)) .top(50.dp) ) { Textual content("Structure Content material", Modifier.align(Alignment.Middle)) }

Elevated API stability
Jetpack Compose has utilized @Experimental annotations to mark APIs which are liable to alter throughout releases, for options that require greater than a library’s alpha interval to stabilize. We’ve heard your suggestions that quite a lot of options have been marked as experimental for a while with no adjustments, contributing to a way of instability. We’re actively stabilizing present experimental APIs—within the UI and Basis modules, now we have decreased the experimental APIs from 172 within the 1.7 launch to 70 within the 1.8 launch. We plan to proceed this stabilization development throughout modules in future releases.
Deprecation of contextual circulate rows and columns
As a part of the work to cut back experimental annotations, we recognized APIs added in latest releases which are lower than optimum options for his or her use instances. This has led to the choice to deprecate the experimental ContextualFlowRow and ContextualFlowColumn APIs, added in Basis 1.7. If you happen to want the deprecated performance, our suggestion for now could be to repeat over the implementation and adapt it as wanted, whereas we work on a plan for future parts that may cowl these functionalities higher.
The associated APIs FlowRow and FlowColumn at the moment are secure; nevertheless, the brand new overflow parameter that was added within the final launch is now deprecated.
Enhancements and fixes for core options
In response to developer suggestions, now we have shipped some notably in-demand options and bug fixes in our core libraries:
- Make dialogs go edge to edge: When displayed full display screen, dialogs now have in mind the complete measurement of the display screen and can draw behind system bars.
Get began!
We’re grateful for the entire bug experiences and have requests submitted to our situation tracker – they assist us to enhance Compose and construct the APIs you want. Proceed offering your suggestions, and assist us make Compose higher.
Completely happy composing!