Compose Animation
Build animations in their Jetpack Compose applications to enrich the user experience.
Latest Update
|
Stable Release
|
Release Candidate
|
Beta Release
|
Alpha Release
|
May 29, 2024
|
1.6.7
|
-
|
1.7.0-beta02
|
-
|
Structure
Compose is a combination of 7 Maven group IDs within
androidx
. Each group
contains a targeted subset of functionality, each with its own set of release
notes.
This table explains the groups and links to each set of release notes.
Group
| Description
|
compose.animation
| Build animations in their Jetpack Compose applications to enrich the user experience.
|
compose.compiler
| Transform @Composable functions and enable optimizations with a Kotlin compiler plugin.
|
compose.foundation
| Write Jetpack Compose applications with ready to use building blocks and extend foundation to build your own design system pieces.
|
compose.material
| Build Jetpack Compose UIs with ready to use Material Design Components. This is the higher level entry point of Compose, designed to provide components that match those described at www.material.io.
|
compose.material3
| Build Jetpack Compose UIs with Material Design 3 Components, the next evolution of Material Design. Material 3 includes updated theming and components and Material You personalization features like dynamic color, and is designed to be cohesive with the new Android 12 visual style and system UI.
|
compose.runtime
| Fundamental building blocks of Compose's programming model and state management, and core runtime for the Compose Compiler Plugin to target.
|
compose.ui
| Fundamental components of compose UI needed to interact with the device, including layout, drawing, and input.
|
Declaring dependencies
To add a dependency on Compose, you must add the Google Maven repository to your
project. Read
Google's Maven repository
for more information.
Add the dependencies for the artifacts you need in the
build.gradle
file for
your app or module:
Groovy
dependencies {
implementation "androidx.compose.animation:animation:1.6.7"
}
android {
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.14"
}
kotlinOptions {
jvmTarget = "1.8"
}
}
Kotlin
dependencies {
implementation("androidx.compose.animation:animation:1.6.7")
}
android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.14"
}
kotlinOptions {
jvmTarget = "1.8"
}
}
For more information about dependencies, see
Add build dependencies
.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have
ideas for improving this library. Please take a look at the
existing issues
in this library before you create a new one. You can add your vote to an existing issue by
clicking the star button.
Create a new issue
See the
Issue Tracker documentation
for more information.
Version 1.7
Version 1.7.0-beta02
May 29, 2024
androidx.compose.animation:animation-*:1.7.0-beta02
is released. Version 1.7.0-beta02 contains
these commits
.
Version 1.7.0-beta01
May 14, 2024
androidx.compose.animation:animation-*:1.7.0-beta01
is released. Version 1.7.0-beta01 contains
these commits
.
API Changes
- New
resizeModes
(
ScaleToBounds
and
RemeasureToBounds
) for
sharedBounds
to choose between scaling and remeasure. The previous
scaleIn/OutSharedContentToBounds
APIs are now deprecated. (
I0d41a
)
External Contribution
Version 1.7.0-alpha08
May 1, 2024
androidx.compose.animation:animation-*:1.7.0-alpha08
is released. Version 1.7.0-alpha08 contains
these commits
.
API Changes
LookaheadScope
APIs have been made stable. (
I21507
)
External Contribution
- Clear start animation time after
SeekableTransitionState
animates/snaps by Steven Schoen (
1ca89529
)
Version 1.7.0-alpha07
April 17, 2024
androidx.compose.animation:animation-*:1.7.0-alpha07
is released. Version 1.7.0-alpha07 contains
these commits
.
New Features
- New shared element transition APIs await your usage and feedback. These new experimental APIs enable tagging layouts as shared across layout tree using the provided modifiers, producing smoothly changing bounds when one set of shared content exits and the other set enters. (
Icb0b9
)
- New
scaleInSharedContentToBounds
and
scaleOutSharedContentToBounds
to scale content in
sharedBounds
(
I731c1
)
API Changes
AnimatedVisibilityScope.transition
is now a stable API.
Modifier.animateEnterExit(..)
has also been made stable. (
I6c1d1
)
ApproachLayoutModifierNode
and
Modifier.approachLayout
are now stable, with new
isMeasurementApproachInProgress()
and
isPlacementApproachInProgress()
to replace the old
isMeasurementApproachComplete()
and
isPlacementApproachComplete()
respectively.
- Removed deprecated
intermediateLayout
modifier. (
I3e91c
)
- You may now pass a
periodicBias
value (Float) to
keyframesWithSpline
, this will make it so that the initial and final velocity of the spline are equal. Useful for repeatable animations using splines. The bias indicates how much each velocity (initial and final) gets modified to achieve periodicity. (
Ic1e6c
,
b/292114811
)
Bug Fixes
- Fixed over-shooting and under-shooting easing curves that would previously be clamped to 0..1 (
I38747
)
Version 1.7.0-alpha06
April 3, 2024
androidx.compose.animation:animation-*:1.7.0-alpha06
is released. Version 1.7.0-alpha06 contains
these commits
.
New Features
- Item appearance and disappearance animation support was added into
LazyColumn
and
LazyRow
. Previously it was possible to add
Modifier.animateItemPlacement()
modifier in order to support placement (reordering) animations. We deprecated this modifier and introduced a new non-experimental modifier called
Modifier.animateItem()
which allows you to support all three animation types: appearance (fade in), disappearance (fade out) and reordering. (
I2d7f7
,
b/330152398
,
b/150812265
)
Bug Fixes
- Improved performance of
updateTransition
API.
Version 1.7.0-alpha05
March 20, 2024
androidx.compose.animation:animation-*:1.7.0-alpha05
is released. Version 1.7.0-alpha05 contains
these commits
.
API Changes
SeekableTransitionState
replaces
snapTo()
with
seekTo()
, and adds a
snapTo()
that immediately changes the state to a destination state without any kind of animation.
Version 1.7.0-alpha04
March 6, 2024
androidx.compose.animation:animation-*:1.7.0-alpha04
is released. Version 1.7.0-alpha04 contains
these commits
.
API Changes
- New API
Path.reverse()
to reverse a path's direction (
I36348
)
Version 1.7.0-alpha03
February 21, 2024
androidx.compose.animation:animation-*:1.7.0-alpha03
is released.
Version 1.7.0-alpha03 contains these commits.
New Features
- New
Modifier.animateContentSize
that takes an additional parameter for custom content alignment. (
I5623a
,
b/269803907
)
- New Experimental
DeferredTargetAnimation
for animating size, position, or any other target that is unknown during instantiation. (
I60745
)
Version 1.7.0-alpha02
February 7, 2024
androidx.compose.animation:animation-*:1.7.0-alpha02
is released.
Version 1.7.0-alpha02 contains these commits.
Bug Fixes
- Compatibility fix for
KeyframesSpec
. (
I2bdf3
,
b/322214617
)
- Fixed
Modifier.animateContentSize
not resetting properly when used in
LazyList
. (
I070512
,
b/322525716
)
- Fixed
IllegalStateException
on
KeyframesSpec
when using out of range timestamps. (
I341b8
,
b/322839811
)
Version 1.7.0-alpha01
January 24, 2024
androidx.compose.animation:animation-*:1.7.0-alpha01
is released.
Version 1.7.0-alpha01 contains these commits.
Version 1.6
Version 1.6.7
May 1, 2024
androidx.compose.animation:animation-*:1.6.7
is released. Version 1.6.7 contains
these commits
.
Version 1.6.6
April 17, 2024
androidx.compose.animation:animation-*:1.6.6
is released. No changes since the previous release
Version 1.6.5
April 3, 2024
androidx.compose.animation:animation-*:1.6.5
is released. Version 1.6.5 contains
these commits
.
Version 1.6.4
March 20, 2024
androidx.compose.animation:animation-*:1.6.4
is released. Version 1.6.4 contains
these commits
.
Version 1.6.3
March 6, 2024
androidx.compose.animation:animation-*:1.6.3
is released. Version 1.6.3 contains
these commits
.
Version 1.6.2
February 21, 2024
androidx.compose.animation:animation-*:1.6.2
is released.
Version 1.6.2 contains these commits.
Version 1.6.1
February 7, 2024
androidx.compose.animation:animation-*:1.6.1
is released.
Version 1.6.1 contains these commits.
Bug Fixes
Version 1.6.0
January 24, 2024
androidx.compose.animation:animation-*:1.6.0
is released.
Version 1.6.0 contains these commits.
Version 1.6.0-rc01
January 10, 2024
androidx.compose.animation:animation-*:1.6.0-rc01
is released.
Version 1.6.0-rc01 contains these commits.
Version 1.6.0-beta03
December 13, 2023
androidx.compose.animation:animation-*:1.6.0-beta03
is released.
Version 1.6.0-beta03 contains these commits.
API Changes
- Temporarily removed
scaleInToFitContainer
and
scaleOutToFitContainer
from
AnimatedContentTransitionScope
as they require lookahead. They will be available when lookahead is on by default or opted-in in future releases.
Version 1.6.0-beta02
November 29, 2023
androidx.compose.animation:animation-*:1.6.0-beta02
is released.
Version 1.6.0-beta02 contains these commits.
Version 1.6.0-beta01
November 15, 2023
androidx.compose.animation:animation-*:1.6.0-beta01
is released.
Version 1.6.0-beta01 contains these commits.
API Changes
ExitTransition.Hold
has been renamed to
ExitTransition.KeepUntilTransitionsFinished
to be more explicit. (
I1c490
)
- You may now use
keyframesWithSpline
to interpolate any N-dimensional value using monotonic splines. It's particularly useful to interpolate positional values such as
Offset
,
IntOffset
,
DpOffset
. Added as Experimental API.
Bug Fixes
- Add renderer support for Sweep Gradient in
ArcLine
. (
I4d5bb
)
- Implement equals and hashcode for
PageSize.Fixed
. (
Ie3ede
,
b/300134276
)
- Fix binary compatibility issue with Window Inset change. (
Iee695
)
- Remove material core layer for Material3 Chip/Button as the microbenchmarks show better performance without it. (
I55555
)
Version 1.6.0-alpha08
October 18, 2023
androidx.compose.animation:animation-*:1.6.0-alpha08
is released.
Version 1.6.0-alpha08 contains these commits.
API Changes
- Deprecated
KeyframesSpecConfig#with
in favor
KeyframesSpecConfig#using
which preserves the builder pattern. (
I1d769
)
Version 1.6.0-alpha07
October 4, 2023
androidx.compose.animation:animation-*:1.6.0-alpha07
is released.
Version 1.6.0-alpha07 contains these commits.
API Changes
- Fixed and Scrollable Tabrows now have Primary and Secondary variants. These correctly map to the color and indicator behavior as defined in Material3.
PrimaryScrollableTabRow
and
SecondaryScrollableTabRow
now expose scroll state. (
Iec8f5
,
b/260572337
)
Version 1.6.0-alpha06
September 20, 2023
androidx.compose.animation:animation-*:1.6.0-alpha06
is released.
Version 1.6.0-alpha06 contains these commits.
Version 1.6.0-alpha05
September 6, 2023
androidx.compose.animation:animation-*:1.6.0-alpha05
is released.
Version 1.6.0-alpha05 contains these commits.
API Changes
- Added
PathEasing
to enable an arbitrary path to be supplied to an easing curve. (
Idb4b9
)
Version 1.6.0-alpha04
August 23, 2023
androidx.compose.animation:animation-*:1.6.0-alpha04
is released.
Version 1.6.0-alpha04 contains these commits.
API Changes
- Add
SeekableTransitionState
to allow developers to control the progress of a transition. (
I8e69d
)
Version 1.6.0-alpha03
August 9, 2023
androidx.compose.animation:animation-*:1.6.0-alpha03
is released.
Version 1.6.0-alpha03 contains these commits.
API Changes
- New type of enter/exit transition that scales the content based on the size of the animating container during enter & exit animation.
LookaheadScope
Composable fun and interface are now stable. (
Ifb2ce
)
Version 1.6.0-alpha02
July 26, 2023
androidx.compose.animation:animation-*:1.6.0-alpha02
is released.
Version 1.6.0-alpha02 contains these commits.
API Changes
- New
ExitTransition.Hold
to display outgoing content in
AnimatedContent
until both enter & exit transition are finished. (
I5984f
)
- Additional annotations to specify allowed inputs to composables (
I51109
)
Version 1.6.0-alpha01
June 21, 2023
androidx.compose.animation:animation-*:1.6.0-alpha01
is released.
Version 1.6.0-alpha01 contains these commits.
New Features
- Enable
Modifier.animateContentSize
and
AnimatedVisibility
to be fully integrated into the lookahead system by reporting the target size in the lookahead pass.
API Changes
- New property in
IntrinsincMeasureScope
and its implementations (e.g.
MeasureScope
) to indicate whether the current measure pass is a lookahead pass. (
I7a812
)
Bug Fixes
- Removed allocations from spring animations. (
Ie9431
)
- value parameter name for Enum.valueOf changed (
Ia9b89
)
- more thrown exceptions from enum valueOf (
I818fe
)
Version 1.5
Version 1.5.4
October 18, 2023
androidx.compose.animation:animation-*:1.5.4
is released.
Version 1.5.4 contains these commits.
Version 1.5.3
October 4, 2023
androidx.compose.animation:animation-*:1.5.3
is released. This version has no changes
Version 1.5.2
September 27, 2023
androidx.compose.animation:animation-*:1.5.2
is released.
Version 1.5.2 contains these commits.
Version 1.5.1
September 6, 2023
androidx.compose.foundation:foundation-*:1.5.1
is released.
Version 1.5.1 contains these commits.
Bug Fixes
- Fixed text fields showing keyboard and being editable when
readOnly
is true. Also fixed the keyboard not showing when
readOnly
is changed from true to false while focused. (
I34a19
,
b/246909589
)
Version 1.5.1
September 6, 2023
androidx.compose.animation:animation-*:1.5.1
is released.
Version 1.5.1 contains these commits.
Version 1.5.0
August 9, 2023
androidx.compose.animation:animation-*:1.5.0
is released.
Version 1.5.0 contains these commits.
Version 1.5.0-rc01
July 26, 2023
androidx.compose.animation:animation-*:1.5.0-rc01
is released.
Version 1.5.0-rc01 contains these commits.
Bug Fixes
Fixed an issue where calling
.value
on a primitive state type (like
MutableIntState
) would report a lint warning with an invalid fix. The inspection will now recommend migrating to the correct property. (
Iba953
,
b/287279257
)
An optional inspection to recommend migrating
mutableStateOf()
calls to their corresponding specialized types for primitives is available. Its lint ID is
AutoboxingStateCreation
. Previously, this inspection was enabled by default for all projects. To see this warning in Android Studio's editor and your project's lint outputs, change its severity from informational to warning (or higher) by declaring
warning "AutoboxingStateCreation"
inside your module's
build.gradle
or
build.gradle.kts
configuration as shown (
I34f7e
):
android {
lint {
warning "AutoboxingStateCreation"
}
...
}
Version 1.5.0-beta03
June 28, 2023
androidx.compose.animation:animation-*:1.5.0-beta03
is released.
Version 1.5.0-beta03 contains these commits.
Version 1.5.0-beta02
June 7, 2023
androidx.compose.animation:animation-*:1.5.0-beta02
is released.
Version 1.5.0-beta02 contains these commits.
Version 1.5.0-beta01
May 24, 2023
androidx.compose.animation:animation-*:1.5.0-beta01
is released.
Version 1.5.0-beta01 contains these commits.
API Changes
- Removed allocations in recomposition, color animations, and
AndroidComposeView
(
Ib2bfa
)
Bug Fixes
- Removed allocations from spring animations (
Ie9431
)
Version 1.5.0-alpha04
May 10, 2023
androidx.compose.animation:animation-*:1.5.0-alpha04
is released.
Version 1.5.0-alpha04 contains these commits.
API Changes
ContentKey
is now supported in
AnimatedContent
to allow more control for when transition should happen. (
Ic069b
)
Version 1.5.0-alpha03
April 19, 2023
androidx.compose.animation:animation-*:1.5.0-alpha03
is released.
Version 1.5.0-alpha03 contains these commits.
New Features
- New default behavior for
SubcomposeLayout
in
LookaheadScope
. It allows
SubcomposeLayouts
that don’t have conditional slots (e.g.
TabRow
,
Scaffold
,
BoxWithConstraints
, etc) to work nicely with lookahead animations.
API Changes
- New default
intermediateMeasurePolicy
that reuses measure policy from lookahead pass allows
SubcomposeLayout
subtypes without conditional slots such as
Scaffold
,
TabRow
, and
BoxWithConstraints
to work with lookahead by default. (
Id84c8
)
- Rename infix fun with to
togetherWith
for combining enter and exit transitions. New
AnimatedContentScope
as receiver for the content lambda. (
Ic39ae
)
Version 1.5.0-alpha02
April 5, 2023
androidx.compose.animation:animation-*:1.5.0-alpha02
is released.
Version 1.5.0-alpha02 contains these commits.
New Features
- New experimental API to support lookahead in
SubcomposeLayout
. This will allow
SubcomposeLayout
to function properly in a
LookaheadScope
. More out-of-the-box support for specific subtypes of
SubcomposeLayout
will come soon.
API Changes
- New
SubcomposeLayout
API that takes an additional intermediate measure policy for handling measure/layout logic during
lookahead-based animations. (
I017d3
)
Version 1.5.0-alpha01
March 22, 2023
androidx.compose.animation:animation-*:1.5.0-alpha01
is released.
Version 1.5.0-alpha01 contains these commits.
API Changes
AnimatedContent
APIs are now stable
AnimatedContentScope
has been renamed to
AnimatedContentTransitionScope
.
scaleIn
and
scaleOut
are now stable APIs. (
Iaf54e
)
Version 1.4
Version 1.4.3
May 3, 2023
androidx.compose.animation:animation:1.4.3
,
androidx.compose.animation:animation-core:1.4.3
, and
androidx.compose.animation:animation-graphics:1.4.3
are released with no changes (only a version bump).
Version 1.4.2
April 19, 2023
androidx.compose.animation:animation:1.4.2
,
androidx.compose.animation:animation-core:1.4.2
, and
androidx.compose.animation:animation-graphics:1.4.2
are released with no changes.
Version 1.4.2 contains these commits.
Version 1.4.1
April 5, 2023
androidx.compose.animation:animation:1.4.1
,
androidx.compose.animation:animation-core:1.4.1
, and
androidx.compose.animation:animation-graphics:1.4.1
are released with no changes.
Version 1.4.1 contains these commits.
Version 1.4.0
March 22, 2023
androidx.compose.animation:animation:1.4.0
,
androidx.compose.animation:animation-core:1.4.0
, and
androidx.compose.animation:animation-graphics:1.4.0
are released.
Version 1.4.0 contains these commits.
Important changes since 1.3.0
- Tooling label is supported in r
ememberInfiniteTransition
and all the extension functions on
InfiniteTransition
and Transition (e.g.
InfiniteTransition#animateColor
) (
I56ef7
)
Version 1.4.0-rc01
March 8, 2023
androidx.compose.animation:animation:1.4.0-rc01
,
androidx.compose.animation:animation-core:1.4.0-rc01
, and
androidx.compose.animation:animation-graphics:1.4.0-rc01
are released with no changes.
Version 1.4.0-rc01 contains these commits.
Version 1.4.0-beta02
February 22, 2023
androidx.compose.animation:animation:1.4.0-beta02
,
androidx.compose.animation:animation-core:1.4.0-beta02
, and
androidx.compose.animation:animation-graphics:1.4.0-beta02
are released with no changes.
Version 1.4.0-beta02 contains these commits.
Version 1.4.0-beta01
February 8, 2023
androidx.compose.animation:animation:1.4.0-beta01
,
androidx.compose.animation:animation-core:1.4.0-beta01
, and
androidx.compose.animation:animation-graphics:1.4.0-beta01
are released with no changes.
Version 1.4.0-beta01 contains these commits.
Version 1.4.0-alpha05
January 25, 2023
androidx.compose.animation:animation:1.4.0-alpha05
,
androidx.compose.animation:animation-core:1.4.0-alpha05
, and
androidx.compose.animation:animation-graphics:1.4.0-alpha05
are released.
Version 1.4.0-alpha05 contains these commits.
Changes
- No changes in animation libraries since the last alpha, version bump only
Version 1.4.0-alpha04
January 11, 2023
androidx.compose.animation:animation:1.4.0-alpha04
,
androidx.compose.animation:animation-core:1.4.0-alpha04
, and
androidx.compose.animation:animation-graphics:1.4.0-alpha04
are released.
Version 1.4.0-alpha04 contains these commits.
New Features
- Tooling label is supported in
rememberInfiniteTransition
and all the extension functions on
InfiniteTransition
and
Transition
(e.g.
InfiniteTransition#animateColor
) (
I56ef7
)
API Changes
InfiniteTransition#TransitionAnimationState
and
InfiniteTransition#animations
APIs are now public. (
I36682
)
Version 1.4.0-alpha03
December 7, 2022
androidx.compose.animation:animation:1.4.0-alpha03
,
androidx.compose.animation:animation-core:1.4.0-alpha03
, and
androidx.compose.animation:animation-graphics:1.4.0-alpha03
are released.
Version 1.4.0-alpha03 contains these commits.
API Changes
- In UI tests using a Compose rule, continuations resumed during
withFrameNanos
callbacks will not be dispatched until after all frame callbacks have finished running. This matches the behavior of compose when running normally. However, tests that rely on the old behavior may fail. This should only affect code that calls
withFrameNanos
or
withFrameMillis
directly, and has logic outside of callback passed to those functions that may need to be moved inside the callbacks. See the animation test changes in
this CL for examples
.
- Added optional
onPerformTraversals: (Long) -> Unit
parameter to
TestMonotonicFrameClock
constructor and factory function to run code after
withFrameNanos
callbacks but before resuming callers' coroutines. (
Idb413
,
b/254115946
,
b/222093277
,
b/255802670
)
- New param in
AnimatedContent
for tooling label (
Iebe2d
)
Version 1.4.0-alpha02
November 9, 2022
androidx.compose.animation:animation:1.4.0-alpha02
,
androidx.compose.animation:animation-core:1.4.0-alpha02
, and
androidx.compose.animation:animation-graphics:1.4.0-alpha02
are released.
Version 1.4.0-alpha02 contains these commits.
API Changes
- Add
ToolingState
to allow tooling to change internal states of Composable (
Ie6614
)
Version 1.4.0-alpha01
October 24, 2022
androidx.compose.animation:animation:1.4.0-alpha01
,
androidx.compose.animation:animation-core:1.4.0-alpha01
, and
androidx.compose.animation:animation-graphics:1.4.0-alpha01
are released.
Version 1.4.0-alpha01 contains these commits.
Bug Fixes
- Fix incorrect interruption animation in AnimatedContent (
b/238662479
)
Version 1.3
Version 1.3.3
January 11, 2023
androidx.compose.animation:animation:1.3.3
,
androidx.compose.animation:animation-core:1.3.3
, and
androidx.compose.animation:animation-graphics:1.3.3
are released.
Version 1.3.3 contains these commits.
- No changes since the 1.3.2.
Version 1.3.2
December 7, 2022
androidx.compose.animation:animation:1.3.2
,
androidx.compose.animation:animation-core:1.3.2
, and
androidx.compose.animation:animation-graphics:1.3.2
are released.
Version 1.3.2 contains these commits.
Bug Fixes
- Updated to support androidx.compose.ui 1.3.2
Version 1.3.1
November 9, 2022
androidx.compose.animation:animation:1.3.1
,
androidx.compose.animation:animation-core:1.3.1
, and
androidx.compose.animation:animation-graphics:1.3.1
are released.
Version 1.3.1 contains these commits.
Version 1.3.0
October 24, 2022
androidx.compose.animation:animation:1.3.0
,
androidx.compose.animation:animation-core:1.3.0
, and
androidx.compose.animation:animation-graphics:1.3.0
are released.
Version 1.3.0 contains these commits.
Important changes since 1.2.0
- New set of easing functions are made stable
Version 1.3.0-rc01
October 5, 2022
androidx.compose.animation:animation:1.3.0-rc01
,
androidx.compose.animation:animation-core:1.3.0-rc01
, and
androidx.compose.animation:animation-graphics:1.3.0-rc01
are released.
Version 1.3.0-rc01 contains these commits.
Version 1.3.0-beta03
September 21, 2022
androidx.compose.animation:animation:1.3.0-beta03
,
androidx.compose.animation:animation-core:1.3.0-beta03
, and
androidx.compose.animation:animation-graphics:1.3.0-beta03
are released.
Version 1.3.0-beta03 contains these commits.
- No changes since 1.3.0-beta02.
Version 1.3.0-beta02
September 7, 2022
androidx.compose.animation:animation:1.3.0-beta02
,
androidx.compose.animation:animation-core:1.3.0-beta02
, and
androidx.compose.animation:animation-graphics:1.3.0-beta02
are released.
Version 1.3.0-beta02 contains these commits.
- Removed Kotlin.experimental from the compiler options since it is depricated
Version 1.3.0-beta01
August 24, 2022
androidx.compose.animation:animation:1.3.0-beta01
,
androidx.compose.animation:animation-core:1.3.0-beta01
, and
androidx.compose.animation:animation-graphics:1.3.0-beta01
are released.
Version 1.3.0-beta01 contains these commits.
Version 1.3.0-alpha03
August 10, 2022
androidx.compose.animation:animation:1.3.0-alpha03
,
androidx.compose.animation:animation-core:1.3.0-alpha03
, and
androidx.compose.animation:animation-graphics:1.3.0-alpha03
are released.
Version 1.3.0-alpha03 contains these commits.
API Changes
- New param in
Crossfade
,
animateAsState
and
Animatable
for tooling label (
Iac08a
)
- Added
atFraction
function for defining keyframes at a fraction instead of at a specific duration. (
I20c76
,
b/232059455
)
Version 1.3.0-alpha02
July 27, 2022
androidx.compose.animation:animation:1.3.0-alpha02
,
androidx.compose.animation:animation-core:1.3.0-alpha02
, and
androidx.compose.animation:animation-graphics:1.3.0-alpha02
are released.
Version 1.3.0-alpha02 contains these commits.
Version 1.3.0-alpha01
June 29, 2022
androidx.compose.animation:animation:1.3.0-alpha01
,
androidx.compose.animation:animation-core:1.3.0-alpha01
, and
androidx.compose.animation:animation-graphics:1.3.0-alpha01
are released.
Version 1.3.0-alpha01 contains these commits.
API Changes
- New
LookaheadLayout
that supports a lookahead pass before the actual measure/layout. This allows a pre-calculation of the layout when it changes, while permitting the post-lookahead measure/layout to use the pre-calculated size/position to animate the size and positions towards the target.
SubcomposeLayouts
are not yet supported, but will be in an upcoming release. (
I477f5
)
Version 1.2
Version 1.2.1
August 10, 2022
androidx.compose.animation:animation:1.2.1
,
androidx.compose.animation:animation-core:1.2.1
, and
androidx.compose.animation:animation-graphics:1.2.1
are released.
Version 1.2.1 contains these commits.
Version 1.2.0
July 27, 2022
androidx.compose.animation:animation:1.2.0
,
androidx.compose.animation:animation-core:1.2.0
, and
androidx.compose.animation:animation-graphics:1.2.0
are released.
Version 1.2.0 contains these commits.
Important changes since 1.1.0
- Compose animation now supports 'Animator duration scale' setting from Developer Options.
- A large selection of new experimental easing curves.
AnimatedImageVector
now supports
repeatCount
and
repeatMode
Version 1.2.0-rc03
June 29, 2022
androidx.compose.animation:animation:1.2.0-rc03
,
androidx.compose.animation:animation-core:1.2.0-rc03
, and
androidx.compose.animation:animation-graphics:1.2.0-rc03
are released.
Version 1.2.0-rc03 contains these commits.
- No changes since 1.2.0-rc02.
Version 1.2.0-rc02
June 22, 2022
androidx.compose.animation:animation:1.2.0-rc02
,
androidx.compose.animation:animation-core:1.2.0-rc02
, and
androidx.compose.animation:animation-graphics:1.2.0-rc02
are released.
Version 1.2.0-rc02 contains these commits.
Bug Fixes
- Removed
ExperimentalEasingApi
annotation on Easing functions (
Ied441
)
Version 1.2.0-rc01
June 15, 2022
androidx.compose.animation:animation:1.2.0-rc01
,
androidx.compose.animation:animation-core:1.2.0-rc01
, and
androidx.compose.animation:animation-graphics:1.2.0-rc01
are released.
Version 1.2.0-rc01 contains these commits.
API Changes
- Interfaces in compose libraries are now built using jdk8 default interface methods (
I5bcf1
)
Version 1.2.0-beta03
June 1, 2022
androidx.compose.animation:animation:1.2.0-beta03
,
androidx.compose.animation:animation-core:1.2.0-beta03
, and
androidx.compose.animation:animation-graphics:1.2.0-beta03
are released.
Version 1.2.0-beta03 contains these commits.
API Changes
- Added Experimental Easing Curves for Animations (
I64a38
)
Version 1.2.0-beta02
May 18, 2022
androidx.compose.animation:animation:1.2.0-beta02
,
androidx.compose.animation:animation-core:1.2.0-beta02
, and
androidx.compose.animation:animation-graphics:1.2.0-beta02
are released.
Version 1.2.0-beta02 contains these commits.
Version 1.2.0-beta01
May 11, 2022
androidx.compose.animation:animation:1.2.0-beta01
,
androidx.compose.animation:animation-core:1.2.0-beta01
, and
androidx.compose.animation:animation-graphics:1.2.0-beta01
are released.
Version 1.2.0-beta01 contains these commits.
- This is the first beta release of 1.2! There are no changes since the last alpha.
Version 1.2.0-alpha08
April 20, 2022
androidx.compose.animation:animation:1.2.0-alpha08
,
androidx.compose.animation:animation-core:1.2.0-alpha08
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha08
are released.
Version 1.2.0-alpha08 contains these commits.
Version 1.2.0-alpha07
April 6, 2022
androidx.compose.animation:animation:1.2.0-alpha07
,
androidx.compose.animation:animation-core:1.2.0-alpha07
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha07
are released.
Version 1.2.0-alpha07 contains these commits.
API Changes
Version 1.2.0-alpha06
March 23, 2022
androidx.compose.animation:animation:1.2.0-alpha06
,
androidx.compose.animation:animation-core:1.2.0-alpha06
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha06
are released.
Version 1.2.0-alpha06 contains these commits.
API Changes
- Updated parsing of vector drawables to support auto mirroring to flip the content of a
VectorPainter
if the current layout direction is RTL. (
I79cd9
,
b/185760237
)
Bug Fixes
- Updated Vector graphics APIs to use the proper composable annotation
@VectorComposable
instead of
@UiComposable
(
I942bc
)
Version 1.2.0-alpha05
March 9, 2022
androidx.compose.animation:animation:1.2.0-alpha05
,
androidx.compose.animation:animation-core:1.2.0-alpha05
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha05
are released.
Version 1.2.0-alpha05 contains these commits.
API Changes
- Hooray! Compose animation now supports
'Animator duration scale' setting from Developer Options. (
I5a4fc
,
b/161675988
)
Version 1.2.0-alpha04
February 23, 2022
androidx.compose.animation:animation:1.2.0-alpha04
,
androidx.compose.animation:animation-core:1.2.0-alpha04
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha04
are released.
Version 1.2.0-alpha04 contains these commits.
Version 1.2.0-alpha03
February 9, 2022
androidx.compose.animation:animation:1.2.0-alpha03
,
androidx.compose.animation:animation-core:1.2.0-alpha03
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha03
are released.
Version 1.2.0-alpha03 contains these commits.
Version 1.2.0-alpha02
January 26, 2022
androidx.compose.animation:animation:1.2.0-alpha02
,
androidx.compose.animation:animation-core:1.2.0-alpha02
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha02
are released.
Version 1.2.0-alpha02 contains these commits.
Version 1.2.0-alpha01
January 12, 2022
androidx.compose.animation:animation:1.2.0-alpha01
,
androidx.compose.animation:animation-core:1.2.0-alpha01
, and
androidx.compose.animation:animation-graphics:1.2.0-alpha01
are released.
Version 1.2.0-alpha01 contains these commits.
API Changes
- Use
AnimatedImageVector.animatedVectorResource
instead of
animatedVectorResource
to load an
<animated-vector>
resource file.
- Use
rememberAnimatedVectorResource
instead of
AnimatedImageVector#painterFor
to render an
AnimatedImageVector
. (
I9c300
)
Bug Fixes
- Add toString methods to Animatable and AnimationResult. (
Icd3a6
)
Dependency Updates
- Now depends on Kotlin
1.6.10
.
Version 1.1
Version 1.1.1
February 23, 2022
androidx.compose.animation:animation:1.1.1
,
androidx.compose.animation:animation-core:1.1.1
, and
androidx.compose.animation:animation-graphics:1.1.1
are released.
Version 1.1.1 contains these commits.
Bug Fixes
Version 1.1.0
February 9, 2022
androidx.compose.animation:animation:1.1.0
,
androidx.compose.animation:animation-core:1.1.0
, and
androidx.compose.animation:animation-graphics:1.1.0
are released.
Version 1.1.0 contains these commits.
Important changes since 1.0.0
- Stable support for the Android 12
Overscroll effect
- Improvements to touch target sizing
- Note that, with respect to Compose 1.0, Material components will expand their layout space to meet Material
accessibility guidelines
for
touch target size
. For instance, Button touch target will expand to a minimum size of 48x48dp, even if you set the Button's size to be smaller. This aligns Compose Material to the same behavior of Material Design Components, providing consistent behavior if you mix Views and Compose. This change also ensures that when you create your UI using Compose Material components, minimum requirements for touch target accessibility will be met.
- Stable support for
Navigation Rail
- Graduates a number of previously experimental APIs to stable
- Support
for newer versions of Kotlin
Version 1.1.0-rc03
January 26, 2022
androidx.compose.animation:animation:1.1.0-rc03
,
androidx.compose.animation:animation-core:1.1.0-rc03
, and
androidx.compose.animation:animation-graphics:1.1.0-rc03
are released.
Version 1.1.0-rc03 contains these commits.
Bug Fixes
- Updated to support Compose Material 1.1.0-rc03
Version 1.1.0-rc01
December 15, 2021
androidx.compose.animation:animation:1.1.0-rc01
and
androidx.compose.animation:animation-core:1.1.0-rc01
are released.
Version 1.1.0-rc01 contains these commits.
API Changes
- Use
AnimatedImageVector.animatedVectorResource
instead of
animatedVectorResource
to load an
<animated-vector>
resource file.
- Use
rememberAnimatedVectorResource
instead of
AnimatedImageVector#painterFor
to render an
AnimatedImageVector
. (
I9c300
)
Version 1.1.0-beta04
December 1, 2021
androidx.compose.animation:animation:1.1.0-beta04
,
androidx.compose.animation:animation-core:1.1.0-beta04
, and
androidx.compose.animation:animation-graphics:1.1.0-beta04
are released.
Version 1.1.0-beta04 contains these commits.
New Features
- Updated to be compatible with Kotlin
1.6.0
Version 1.1.0-beta03
November 17, 2021
androidx.compose.animation:animation:1.1.0-beta03
,
androidx.compose.animation:animation-core:1.1.0-beta03
, and
androidx.compose.animation:animation-graphics:1.1.0-beta03
are released.
Version 1.1.0-beta03 contains these commits.
API Changes
- Added new modifier Modifier.onPlaced to allow
placement change to be observed. Additional changes to
child modifier's offset can therefore be made based on
the observed placement change. (
I558fd
)
New support for contentKey in Crossfade.
ContentKey will be used for equality check by animation system.
Therefore custom diffing on states can be achieved via specifying
appropriate contentKey for different states.
ContentKey will also be used as the key for save & restore content. (
I2e055
,
b/197907070
)
Version 1.1.0-beta02
November 3, 2021
androidx.compose.animation:animation:1.1.0-beta02
,
androidx.compose.animation:animation-core:1.1.0-beta02
, and
androidx.compose.animation:animation-graphics:1.1.0-beta02
are released.
Version 1.1.0-beta02 contains these commits.
Bug Fixes
- New animation APIs for supporting tooling. Specifically, they
allow tooling to inspect the animations & their configurations in a
Transitions. (
I4116e
)
Version 1.1.0-beta01
October 27, 2021
androidx.compose.animation:animation:1.1.0-beta01
,
androidx.compose.animation:animation-core:1.1.0-beta01
, and
androidx.compose.animation:animation-graphics:1.1.0-beta01
are released.
Version 1.1.0-beta01 contains these commits.
API Changes
- New animation APIs for supporting tooling. Specifically, they
allow tooling to inspect the animations & their configurations in a
Transitions. (
I4116e
)
Version 1.1.0-alpha06
October 13, 2021
androidx.compose.animation:animation:1.1.0-alpha06
,
androidx.compose.animation:animation-core:1.1.0-alpha06
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha06
are released.
Version 1.1.0-alpha06 contains these commits.
Version 1.1.0-alpha05
September 29, 2021
androidx.compose.animation:animation:1.1.0-alpha05
,
androidx.compose.animation:animation-core:1.1.0-alpha05
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha05
are released.
Version 1.1.0-alpha05 contains these commits.
API Changes
EnterTransition
,
ExitTransition
, and some of the
AnimatedVisibility
APIs have been made stable.
MutableTransitionState.isIdle
is also no longer experimental. (
I5072d
)
Breaking change
: lambdas in Enter/ExitTransition factories
have been moved to the last position in the param list. (
I5072d
)
Version 1.1.0-alpha04
September 15, 2021
androidx.compose.animation:animation:1.1.0-alpha04
,
androidx.compose.animation:animation-core:1.1.0-alpha04
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha04
are released.
Version 1.1.0-alpha04 contains these commits.
Version 1.1.0-alpha03
September 1, 2021
androidx.compose.animation:animation:1.1.0-alpha03
,
androidx.compose.animation:animation-core:1.1.0-alpha03
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha03
are released.
Version 1.1.0-alpha03 contains these commits.
New Features
- Updated Compose
1.1.0-alpha03
to depend on Kotlin
1.5.30
. (
I74545
)
Version 1.1.0-alpha02
August 18, 2021
androidx.compose.animation:animation:1.1.0-alpha02
,
androidx.compose.animation:animation-core:1.1.0-alpha02
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha02
are released.
Version 1.1.0-alpha02 contains these commits.
API Changes
- StartOffset is now supported in repeatable and
infiniteRepeatable, as a way to delay the start time or
fast forward the animation before the animation starts.
This start offset will not be repeated (
Ic679f
,
b/195079908
)
- New Enter/Exit transition for scale. It can be used in combination
with other types of Enter/ExitTransitions. (
I372da
,
b/191325593
)
Version 1.1.0-alpha01
August 4, 2021
androidx.compose.animation:animation:1.1.0-alpha01
,
androidx.compose.animation:animation-core:1.1.0-alpha01
, and
androidx.compose.animation:animation-graphics:1.1.0-alpha01
are released.
Version 1.1.0-alpha01 contains these commits.
API Changes
AnimatedImageVector
and the related APIs are now in the new
androidx.compose.animation:animation-graphics
module. (
I60873
)
Bug Fixes
Version 1.0
Version 1.0.5
November 3, 2021
androidx.compose.animation:animation:1.0.5
and
androidx.compose.animation:animation-core:1.0.5
are released.
Version 1.0.5 contains these commits.
Bug Fixes
- Fixed a crash tracking derivedStateOf instances. (
aosp/1792247
)
Version 1.0.4
October 13, 2021
androidx.compose.animation:animation:1.0.4
and
androidx.compose.animation:animation-core:1.0.4
are released.
Version 1.0.4 contains these commits.
Dependency Updates
- Updated to depend on Kotlin
1.5.31
Version 1.0.3
September 29, 2021
androidx.compose.animation:animation:1.0.3
and
androidx.compose.animation:animation-core:1.0.3
are released.
Version 1.0.3 contains these commits.
Dependency Updates
- Updated to depend on Kotlin
1.5.30
Version 1.0.2
September 1, 2021
androidx.compose.animation:animation:1.0.2
and
androidx.compose.animation:animation-core:1.0.2
are released.
Version 1.0.2 contains these commits.
Updated to support the Compose
1.0.2
release. Compose
1.0.2
is still compatible with Kotlin
1.5.21
.
Version 1.0.1
August 4, 2021
androidx.compose.animation:animation:1.0.1
and
androidx.compose.animation:animation-core:1.0.1
are released.
Version 1.0.1 contains these commits.
Dependency Updates
- Updated to depend on Kotlin
1.5.21
.
Version 1.0.0
July 28, 2021
androidx.compose.animation:animation:1.0.0
and
androidx.compose.animation:animation-core:1.0.0
are released.
Version 1.0.0 contains these commits.
Major features of 1.0.0
This is the first stable release of Compose. Please see the official
Compose Release blog
for more details!
Known Issues
If you are using Android Studio Bumblebee Canary 4 or AGP
7.1.0-alpha04
/
7.1.0-alpha05
, you may hit the following crash:
java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
To fix, temporarily increase your minSdkVersion to 24+ in your
build.gradle
file. This issue will be fixed in the next version of Android Studio Bumblebee and AGP
7.1
. (
b/194289155
)
Version 1.0.0-rc02
July 14, 2021
androidx.compose.animation:animation:1.0.0-rc02
and
androidx.compose.animation:animation-core:1.0.0-rc02
are released.
Version 1.0.0-rc02 contains these commits.
Version 1.0.0-rc01
July 1, 2021
androidx.compose.animation:animation:1.0.0-rc01
and
androidx.compose.animation:animation-core:1.0.0-rc01
are released.
Version 1.0.0-rc01 contains these commits.
Bug Fixes
Version 1.0.0-beta09
June 16, 2021
androidx.compose.animation:animation:1.0.0-beta09
and
androidx.compose.animation:animation-core:1.0.0-beta09
are released.
Version 1.0.0-beta09 contains these commits.
API Changes
- New
AnimatedContent
Composable. It manages its content
change using customizable
ContentTransform
as new target content
enters and initial content leaves. Different combination of enter
and exit transitions can be used to produce a customized look and
feel. As a part of the content transform,
AnimatedContent
automatically animates its size to match the incoming content. (
I2c3df
)
- Removed
ManualFrameClock
. If you need to control animations,
use
composeTestRule.mainClock
instead. (
I3c3e8
,
b/189951065
)
Added Profile Rules
This release adds profile rules to the following compose modules (
I14ed6
):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
What are profile rules?
Profile rules for a library are specified in a text file
baseline-prof.txt
located in the
src/main
or equivalent directory. The file specifies a rule per line, where a rule in this case is a pattern for matching to methods or classes in the library. The syntax for these rules is a superset of the human-readable ART profile format that is used when using
adb shell profman --dump-classes-and-methods ...
. These rules take one of two forms to target either methods or classes.
A method rule will have the following pattern:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
And a class rule will have the following pattern:
<CLASS_DESCRIPTOR>
Here
<FLAGS>
is one or more of the characters
H
,
S
, and
P
to indicate whether or not this method should be flagged as "Hot", "Startup", or "Post Startup".
The
<CLASS_DESCRIPTOR>
is the descriptor for the class that the targeted method belongs to. For example, the class
androidx.compose.runtime.SlotTable
would have a descriptor of
Landroidx/compose/runtime/SlotTable;
.
The
<METHOD_SIGNATURE>
is the signature of the method, and includes the name, parameter types, and return types of the method. For example, the method
fun isPlaced(): Boolean
on
LayoutNode
has the signature
isPlaced()Z
.
These patterns can have wildcards (
**
,
*
, and
?
) in order to have a single rule encompass multiple methods or classes.
What do the rules do?
A method that has the flag
H
indicates that this method is a "hot" method, and should be compiled ahead of time.
A method that has the flag
S
indicates that it is a method which is called at startup, and should be compiled ahead of time to avoid the cost of compilation and interpreting the method at startup time.
A method that has the flag
P
indicates that it is a method which is called after startup.
A class that is present in this file indicates that it is used during startup and should be pre-allocated in the heap to avoid the cost of class loading.
How does this work?
- Libraries can define these rules which will be packaged in AAR artifacts. When an app is then built which includes these artifacts, these rules are merged together and the merged rules are used to build a compact binary ART profile that is specific to the app. ART can then leverage this profile when the app is installed on devices in order to ahead-of-time compile a specific subset of the application to improve the performance of the application, especially the first run. Note that this will have no effect on debuggable applications.
Version 1.0.0-beta08
June 2, 2021
androidx.compose.animation:animation:1.0.0-beta08
and
androidx.compose.animation:animation-core:1.0.0-beta08
are released.
Version 1.0.0-beta08 contains these commits.
Bug Fixes
- Now
detectDragGesures
,
detectVerticalGestures
, and
detectHorizontalGestures
will consume the position change automatically, no need to call change.consumePositionChange in the onDrag callbacks (
I42fc4
,
b/185096350
,
b/187320697
)
Modifier.onGloballyPositioned()
was changed to report the coordinates of this modifier in the modifier chain, not the layout coordinates after applying all the modifiers. This means that now the ordering of modifiers is affecting what coordinates would be reported. (
Ieb67d
,
b/177926591
)
Version 1.0.0-beta07
May 18, 2021
androidx.compose.animation:animation:1.0.0-beta07
and
androidx.compose.animation:animation-core:1.0.0-beta07
are released.
Version 1.0.0-beta07 contains these commits.
API Changes
- New
AnimatedVisibility
API that support visibility to be specified in
a
MutableTransitionState
. This also allows the animation states to be
observed external to
AnimatedVisibility
via
currentState
and
isIdle
.
- New child transition support in Transition
- Support custom exit/enter transition animation in AnimatedVisibility
using AnimationScope.transition
- New animateEnterExit modifier accessible for all children of
AnimatedVisibility
- Deprecated the AnimatedVisibility APIs that take an
initiallyVisible
parameter (
I702f3
)
Version 1.0.0-beta06
May 5, 2021
androidx.compose.animation:animation:1.0.0-beta06
and
androidx.compose.animation:animation-core:1.0.0-beta06
are released.
Version 1.0.0-beta06 contains these commits.
Version 1.0.0-beta05
April 21, 2021
androidx.compose.animation:animation:1.0.0-beta05
and
androidx.compose.animation:animation-core:1.0.0-beta05
are released.
Version 1.0.0-beta05 contains these commits.
Bug Fixes
- The AndroidManifest files from ui-test-manifest and
ui-tooling-data are now compatible with Android 12 (
I6f9de
,
b/184718994
)
Version 1.0.0-beta04
April 7, 2021
androidx.compose.animation:animation:1.0.0-beta04
and
androidx.compose.animation:animation-core:1.0.0-beta04
are released.
Version 1.0.0-beta04 contains these commits.
API Changes
- Public instances of
RowScope
,
ColumnScope
,
BoxScope
,
BoxWithConstraintsScope
were removed. (
I4e83e
,
b/181869067
)
Version 1.0.0-beta03
March 24, 2021
androidx.compose.animation:animation:1.0.0-beta03
and
androidx.compose.animation:animation-core:1.0.0-beta03
are released.
Version 1.0.0-beta03 contains these commits.
Version 1.0.0-beta02
March 10, 2021
androidx.compose.animation:animation:1.0.0-beta02
and
androidx.compose.animation:animation-core:1.0.0-beta02
are released.
Version 1.0.0-beta02 contains these commits.
Bug Fixes
Version 1.0.0-beta01
February 24, 2021
androidx.compose.animation:animation:1.0.0-beta01
and
androidx.compose.animation:animation-core:1.0.0-beta01
are released.
Version 1.0.0-beta01 contains these commits.
This is the first release of Compose 1.0.0 Beta.
API Changes
InteractionState
has been replaced with
[Mutable]InteractionSource
- Interfaces are responsible for emitting / collecting Interaction events.
- Instead of passing
interactionState = remember { InteractionState() }
to components such as
Button
and
Modifier.clickable()
, use
interactionSource = remember { MutableInteractionSource() }
.
- Instead of:
Interaction.Pressed in interactionState
you should instead use the extension functions on InteractionSource, such as InteractionSource.collectIsPressedAsState().
- For complex use cases you can use InteractionSource.interactions to observe the stream of Interactions. See the InteractionSource documentation and samples for more information.
- (
I85965
,
b/152525426
,
b/171913923
,
b/171710801
,
b/174852378
)
- smoothScrollBy and scrollBy methods' packages changed to
androidx.compose.foundation.gestures.*
(
I3f7c1
,
b/175294473
)
- Size modifiers were renamed. Modifier.width/height/size were renamed to requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize were renamed to width/height/size. (
I5b414
)
- Orientation has been moved to foundation package. VelocirtTracker moved from ui.gesture to ui.input.pointer. (
Iff4a8
,
b/175294473
)
- AnimationClockObservable and subclasses have been
removed. AnimatedFloat has been removed. (
Icde52
,
b/177457083
)
- Modifier.draggable now accepts DraggableState instead of a simple lambda. you can create state via
rememberDraggableState { delta -> }
to get the same behaviour as before (
Ica70f
,
b/175294473
)
- animate, animatedValue, AnimatedValue APIs have
been removed (
If27bc
,
b/177457083
)
- AnimationEndReason.Interrupted is removed. CancellationException will be throws if animation is interrupted. (
I2cbbc
,
b/179695417
)
- TargetAnimation API has been removed. (
If47d1
,
b/177457083
)
Version 1.0.0-alpha12
February 10, 2021
androidx.compose.animation:animation:1.0.0-alpha12
and
androidx.compose.animation:animation-core:1.0.0-alpha12
are released.
Version 1.0.0-alpha12 contains these commits.
API Changes
Modifier.pointerInput
now requires remember keys to indicate
when the pointer input detection coroutine should restart for new
dependencies. (
I849cd
)
- Bounds has been renamed to DpRect (
I4b32a
)
- Unified the param name for AnimationSpec to animationSpec
across the animation system. Also constrain the Enter/ExitTransition
to accept FiniteAnimationSpec. (
Ie47c5
,
b/177457083
)
- Animatable.snapTo and Animatable.stop are now suspend functions (
If4288
)
- Similarly to how we previously removed
state { 0 }
composable and now promote usage like
remember { mutableStateOf(0) }
we are going to remove
savedInstanceState { 0 }
composable. You should use
rememberSaveable { mutableStateOf(0) }
instead and it will save and restore automatically if the type used inside the MutableState can be stored in the Bundle. If previously you were passing a custom saver object now you need to use a new overload of rememberSaveable which has
stateSaver
parameter. The usage will look like this:
val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(
Ib4c26
,
b/177338004
)
- Updated Crossfade's method signature to be more consistent
with the rest of the animation system. (
Ib05ed
,
b/177457083
)
- rememberSavedInstanceState() was renamed to rememberSaveable() and moved to androidx.compose.runtime.saveable package. (
I1366e
,
b/177338004
)
- RestorableStateHolder was renamed to SaveableStateHolder and moved to androidx.compose.runtime.saveable package. Inner method RestorableStateProvider was renamed to SaveableStateProvider. Generic type was removed so you can just pass Any as a key. Experimental annotation is not needed anymore. (
I0902e
,
b/174598702
)
- Updated Modifier.animateContentSize API to be consistent
with the rest of the animation system. (
I0bf75
,
b/177457083
)
- AnimatedValue/Float is now deprecated. Please use
Animatable instead. (
I71345
,
b/177457083
)
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter and pressIndicaitonGestureFilter have been deprecated. Use Modifier.clickable or Modifier.pointerInput with detectTapGestures function instead. (
I6baf9
,
b/175294473
)
- Introduced an
InfiniteAnimationPolicy
coroutine context
element that will be applied in infinite animations. By default no
policy is installed, except when running tests with
ComposeTestRule
. (
I50ec4
,
b/151940543
)
- Destructuring and copy() methods have been removed from
several classes where they were rarely used. (
I26702
,
b/178659281
)
- Playtime in animation is now unfiied to nanoseconds (
If776a
)
- The compose:runtime-dispatch artifact is now deprecated.
MonotonicFrameClock can now be found in compose:runtime and
AndroidUiDispatcher can be found in compose:ui. (
Ib5c36
)
- Added
Animation.isInfinite
and
VectorizedAnimationSpec.isInfinite
that signal if an animation is
infinite or not. This can be used in implementations of animations to
have special handling of such animations. For example, a special "time
remaining" message can be shown, or during tests the animation can be
cancelled to prevent waiting for idleness indefinitely. (
Iebb05
,
b/151940543
)
- Use Long instead of Uptime as animation time type (
Ie3aa7
,
b/177420019
)
Version 1.0.0-alpha11
January 28, 2021
androidx.compose.animation:animation:1.0.0-alpha11
and
androidx.compose.animation:animation-core:1.0.0-alpha11
are released.
Version 1.0.0-alpha11 contains these commits.
API Changes
- TransitionDefinition-based Transition has been deprecated (
I0ac57
)
- A label field is added for Transition
and child animations to be displayed in tools (
I619fb
)
- animateAsState is now animateFooAsState, where Foo is the
type of the variable being animated. e.g. Float, Dp, Offset, etc (
Ie7e25
)
- New InfiniteTransition that runs any number of
child animations. (
I1da81
)
- Changes Material stateful parameter interfaces to have @Composable functions that return
State<T>
. Adds Animatable.asState() to make it easier to convert an Animatable to a State. Also changes animateElevation to be a suspend extension on Animatable. (
If613c
)
Bug Fixes
- onCommit, onDispose, and onActive have been deprecated in favor of SideEffect and DisposableEffect APIs (
If760e
)
- Initial State in updateTransition is now supported (
Ifd51d
)
- Content description parameter has been added to the Image and Icon. It is used to provide description to the accessibility services (
I2ac4c
)
- invalidate and compositionReference() are now deprecated in favor of currentRecomposeScope and rememberCompositionReference respectively. (
I583a8
)
- Duration and Uptime will be replace with Long milliseconds,
and this step removes the dependency of pointer input on those
classes. (
Ia33b2
,
b/175142755
,
b/177420019
)
- clickable, toggleable and selectable can be created outside of composition now (
I0a130
,
b/172938345
,
b/175294473
)
- Easing has been changed to a functional interface (
Ib14e5
)
- New
items(count: Int)
factory method for scope of LazyColumn/LazyRow/LazyVerticalGrid.
items(items: List)
and
itemsIndexed(items: List)
are now extension functions so you have to manually import them when used.
New extension overloads for Arrays: items(items: Array) and itemsIndexed(Array) (
I803fc
,
b/175562574
)
- Leverage TestCoroutineDispatcher in testing (
I532b6
)
- Removed PointerInputData and modified PointerInputChange
to give it all of PointerInputData's fields. Made PointerInputEvent
and PointerInputEventData internal because they aren't used in
any public API. (
Ifff97
,
b/175142755
)
Version 1.0.0-alpha10
January 13, 2021
androidx.compose.animation:animation:1.0.0-alpha10
and
androidx.compose.animation:animation-core:1.0.0-alpha10
are released.
Version 1.0.0-alpha10 contains these commits.
API Changes
- Modified Velocity to have component parts and mathematical
operations. (
Ib0447
)
- Renamed
@ExperimentalTesting
to
@ExperimentalTestApi
to be
consistent with similar experimental api annotations (
Ia4502
,
b/171464963
)
- Renamed Position to DpOffset and removed getDistance() (
Ib2dfd
)
- Removed Any.identityHashCode() public api (
I025d7
)
Bug Fixes
- New coroutine-based API
Animatable
that ensures mutual exclusiveness
among its animations.
New DecayAnimationSpec to support multi-dimensional decay animation (
I820f2
,
b/168014930
)
animate()
is now replaced with
animateAsState()
,
which returns a
State<T>
instead of
T
. This allows better
performance, as the invalidation scope can be narrowed down
to where the State value is read. (
Ib179e
)
Version 1.0.0-alpha09
December 16, 2020
androidx.compose.animation:animation:1.0.0-alpha09
and
androidx.compose.animation:animation-core:1.0.0-alpha09
are released.
Version 1.0.0-alpha09 contains these commits.
API Changes
- Moved Dp.VectorConverter, Position.VectorConverter, etc to
animation-core, and deprecated the old VectorConveters (
If0c4b
)
- Introduced a whole new set of Transition APIs with improved
ease of use, and support for dynamically added animations, and dynamically
calculated animation targets. This APIs are marked experimental for
easy differentiation from the TransitionDefinition-based API. (
Ia7fe3
)
Bug Fixes
- Lambdas in offset modifiers now return IntOffset rather than Float. (
Ic9ee5
,
b/174137212
,
b/174146755
)
- Deprecate LazyColumnFor, LazyRowFor, LazyColumnForIndexed and LazyRowForIndexed. Use LazyColumn and LazyRow instead (
I5b48c
)
- For suspending pointer input APIs, renamed
HandlePointerInputScope to AwaitPointerEventScope and
handlePointerInput() to awaitPointerEventScope(). (
Idf0a1
,
b/175142755
)
- New infiniteRepeatable function for creating an InfiniteRepeatableSpec (
I668e5
)
- Removed ExperimentalPointerInput annotation (
Ia7a24
)
Version 1.0.0-alpha08
December 2, 2020
androidx.compose.animation:animation:1.0.0-alpha08
and
androidx.compose.animation:animation-core:1.0.0-alpha08
are released.
Version 1.0.0-alpha08 contains these commits.
API Changes
- Added lint check for composable lambda parameter naming and position, to check for consistency with Compose guidelines.
Also migrated some APIs using
children
as the name for their trailing lambda to
content
, according to the lint check and guidance. (
Iec48e
)
- Previously Deprecated APIs were removed:
Modifier.onPositioned
was removed, use
Modifier.onGloballyPositioned
.
Modifier.onDraw
was removed, use
Modifier.onDrawBehind
.
Modifier.plus
was removed, use
Modifier.then
.
Color.Unset
was removed, use
Color.Unspecified
.
PxBounds
class was removed, use
Rect
instead.
- (
Ie9d02
,
b/172562222
)
- Temporarily added option to let the TestAnimationClock be
driven by the MonotonicFrameClock (
I1403b
,
b/173402197
)
Bug Fixes
- Renamed Modifier.drawLayer to Modifier.graphicsLayer
Also updated related classes to GraphicsLayer as per
API council feedback. (
I0bd29
,
b/173834241
)
- Added Modifier.scale/rotate
APIs as conveniences for drawLayer.
- Renamed Modifier.drawOpacity to Modifier.alpha
- Renamed Modifier.drawShadow to Modifier.shadow (
I264ca
,
b/173208140
)
- Made PointerInputData's uptime and
position fields non-nullable. (
Id468a
)
- offsetPx modifiers were renamed to offset. They are now taking lambda parameters instead of State. (
Ic3021
,
b/173594846
)
- New APIs for running animations in coroutines (
Ied662
)
- Deprecated Ambients named with
Ambient
as their suffix, and replaced them with new properties prefixed with Ambient, following other Ambients and Compose API guidelines. (
I33440
)
- Time control in tests (TestAnimationClock and its usages) is
now experimental (
I6ef86
,
b/171378521
)
- Remove old ui-test module and its stubs (
I3a7cb
)
RestorableStateHolder.withRestorableState
function was renamed to
RestorableStateProvider
(
I66640
)
- The Alignment interface was updated and made functional. (
I46a07
,
b/172311734
)
Version 1.0.0-alpha07
November 11, 2020
androidx.compose.animation:animation:1.0.0-alpha07
and
androidx.compose.animation:animation-core:1.0.0-alpha07
are released.
Version 1.0.0-alpha07 contains these commits.
Bug Fixes
- The foundation AmbientTextStyle, ProvideTextStyle, and AmbientContentColor have been deprecated. Instead use the new versions available in the Material library. For non-Material applications, you should instead create your own design system specific theming ambients that can be consumed in your own components. (
I74acc
,
b/172067770
)
- foundation.Text has been deprecated and replaced with material.Text. For a basic, unopinionated text API that does not consume values from a theme, see androidx.compose.foundation.BasicText. (
If64cb
)
- MeasureResult was moved out of MeasureScope. (
Ibf96d
,
b/171184002
)
- Several layout related symbols were moved from androidx.compose.ui to androidx.compose.layout.ui. (
I0fa98
,
b/170475424
)
Version 1.0.0-alpha06
October 28, 2020
androidx.compose.animation:animation:1.0.0-alpha06
and
androidx.compose.animation:animation-core:1.0.0-alpha06
are released.
Version 1.0.0-alpha06 contains these commits.
API Changes
- Enable transitions in ComposeTestRule; remove option to
enable the blinking cursor from ComposeTestRule. (
If0de3
)
Version 1.0.0-alpha05
October 14, 2020
androidx.compose.animation:animation:1.0.0-alpha05
and
androidx.compose.animation:animation-core:1.0.0-alpha05
are released.
Version 1.0.0-alpha05 contains these commits.
API Changes
- New Animation interface and subclasses: These classes
store the start and end conditions for animations, and therefore
allow value and velocity to be queried via only playtime (
Ie95bd
,
b/163329867
)
Bug Fixes
- OnPositionedModifier is renamed to OnGloballyPositionedModifier
and onPositioned() is renamed to onGloballyPositioned(). (
I587e8
,
b/169083903
)
Deprecates contentColor() and currentTextStyle() APIs, and replaces them with AmbientContentColor and AmbientTextStyle ambients respectively. You can access the current value by using
.current
on the ambient property, as with any other ambient. This was change was made for consistency and to avoid having multiple ways to accomplish the same thing. Additionally renames some ambient properties to better describe their purpose as follows:
- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (
I37b6d
)
Version 1.0.0-alpha04
October 1, 2020
androidx.compose.animation:animation:1.0.0-alpha04
and
androidx.compose.animation:animation-core:1.0.0-alpha04
are released.
Version 1.0.0-alpha04 contains these commits.
API Changes
- Annotated rootAnimationClockFactory, transitionsEnabled,
blinkingCursorEnabled and textInputServiceFactory with
@VisibleForTesting, make them internal API and hide their kdoc (
I554eb
,
b/168308412
)
Bug Fixes
- Updated many Graphics APIs
- Updated scale and rotation
transformation APIs to consume a single
Offset parameter to represent the pivot
coordinate instead of separate float
parameters for the x/y coordinates in
DrawScope and DrawTransform
- Removed Rect.expandToInclude and Rect.join
methods
- Updated Radius documentation to say oval
in addition to elliptical
- Added documentation to indicate the
public constructor for the inline Radius
class is not to be called directly but instead
Radius objects should be instantiated through
their function constructors
- Removed RoundRect APIs to query topRight,
bottomRight, bottomCenter, etc.
- Deprecated Rect.shift in favor of Rect.translate
- Removed RoundRect.grow and Rect.shrink APIs
- Renamed RoundRect.outerRect to Rect.boundingRect
- Removed RoundRect.middleRect/tallMiddleRect/wideMiddleRect
and Rect.isStadium methods
- Renamed RoundRect.longestSide to RoundRect.maxDimension
- Renamed RoundRect.shortestSide to RoundRect.minDimension
- Changed RoundRect.center to be a property instead of a function
- Updated RoundRect constructor to consume Radius properties
instead of individual parameters for x/y radius values
- Removed Size APIs that assumed it was a Rectangle with
origin at 0,0
- Added a destructing API to Radius
- Migrated various RoundRect extension functions to be
properties instead
- (
I8f5c7
,
b/168762961
)
- foundation.Box was deprecated. Please use foundation.layout.Box instead. (
Ie5950
,
b/167680279
)
- Stack was renamed to Box. The previously existing Box will be deprecated in favor of the new Box in compose.foundation.layout. The behavior of the new Box is to stack children one on top of another when it has multiple children - this is different from the previous Box, which was behaving similar to a Column. (
I94893
,
b/167680279
)
- Box decoration parameters have been deprecated. If you want to have decorations/padding on your box, use Modifiers instead (Modifier.background, Modifier.border, Modifier.padding) (
Ibae92
,
b/167680279
)
- We prevented static imports of contents of layout scopes (e.g. alignWithSiblings in RowScope). The explicit scope alternative should be used instead:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (
I216be
,
b/166760797
)
Version 1.0.0-alpha03
September 16, 2020
androidx.compose.animation:animation:1.0.0-alpha03
and
androidx.compose.animation:animation-core:1.0.0-alpha03
are released.
Version 1.0.0-alpha03 contains these commits.
Bug Fixes
- Usages of gravity were consistently renamed to align or alignment in layout APIs. (
I2421a
,
b/164077038
)
Version 1.0.0-alpha02
September 2, 2020
androidx.compose.animation:animation:1.0.0-alpha02
and
androidx.compose.animation:animation-core:1.0.0-alpha02
are released.
Version 1.0.0-alpha02 contains these commits.
API Changes
Added
ManualFrameClock.hasAwaiters
to see if anything is
awaiting a frame from that clock;
runWithManualClock
as a replacement
for
runBlocking
when running tests that need a ManualFrameClock;
TestUiDispatcher.Main
that gives easy access to the main UI dispatcher
in your tests.
For example:
@Test
fun myTest() = runWithManualClock { clock ->
// set some compose content
withContext(TestUiDispatcher.Main) {
clock.advanceClock(1000L)
}
if (clock.hasAwaiters) {
println("The clock has awaiters")
} else {
println("The clock has no more awaiters")
}
}
(
I0a85b
,
b/161247083
)
Bug Fixes
onPreCommit is deprecated; onCommit now has onPreCommit's
behavior.
onCommit and onActive now run in the same choreographer frame that
the composition changes committed in rather than at the beginning
of the next choreographer frame. (
I70403
)
Version 1.0.0-alpha01
August 26, 2020
androidx.compose.animation:animation:1.0.0-alpha01
and
androidx.compose.animation:animation-core:1.0.0-alpha01
are released.
Version 1.0.0-alpha01 contains these commits.
Version 0.1.0-dev
Version 0.1.0-dev17
August 19, 2020
androidx.compose.animation:animation:0.1.0-dev17
and
androidx.compose.animation:animation-core:0.1.0-dev17
are released.
Version 0.1.0-dev17 contains these commits.
New Features
API Changes
- Offset has become an inline class (
Iaec70
)
- IntOffset is now an inline class (
Iac0bf
)
- IntSize is now an inline class (
I2bf42
)
AnimatedVisibilty composable animates the appearance
and disappearance of the child content.
EnterTransition and ExitTransition are introduced to work with
AnimatedVisibilty composable to provide 3 different typs of
appearance and disappearance animation: fade, slide, and
expand/shrink the content. The different types of animations
can be combined to achieve more bespoke look and feel. (
Idda11
)
Deprecated PxBounds in
favor of Rect. Updated all usages
of PxBounds with rect and added
proper deprecate/replace with
annotations to assist with the
migration. (
I37038
,
b/162627058
)
Bug Fixes
PlacementScope.placeAbsolute()
was renamed to
PlacementScope.place()
, and the previous
PlacementScope.place()
was renamed to
PlacementScope.placeRelative()
. As a result, the
PlacementScope.place()
method will not automatically mirror the position in right-to-left contexts anymore. If this is desired, use
PlacementScope.placeRelative()
instead. (
I873ac
,
b/162916675
)
- The
state { ... }
composable is now deprecated in favor of
explicit calls to
remember { mutableStateOf(...) }
for clarity.
This reduces the overall API surface and number of concepts for state
management, and matches the
by mutableStateOf()
pattern for class
property delegation. (
Ia5727
)
Version 0.1.0-dev16
August 5, 2020
androidx.compose.animation:animation:0.1.0-dev16
and
androidx.compose.animation:animation-core:0.1.0-dev16
are released.
Version 0.1.0-dev16 contains these commits.
API Changes
- Built-in vector converters to convert built-in
units are now accessible via
Foo.VectorConverter
. e.g.
Dp.VectorConverter
,
Color.VectorConverter
,
Float.VectorConverter
, etc (
I3e273
)
- Support end listener in
Modifier.animateContentSize()
such that when size change animation finishes, the listener
will be notified, along with start/end size of the animation. (
I277b2
)
- New animateContentSize modifier that animates the
layout size change of its child modifier (
Ieffdc
)
Added
MonotonicFrameAnimationClock
that enables you to use a
MonotonicFrameClock as an
AnimationClockObservable
to bridge the gap
between the new coroutines based clocks and APIs that still use the old
callback based clocks.
The
MonotonicFrameClock
equivalent of
ManualAnimationClock
is now
ManualFrameClock
. (
I111c7
,
b/161247083
)
Bug Fixes
- The APIs for right-to-left support has been updated. LayoutDirectionAmbient has been added, which can be used to read and change the layout direction. Modifier.rtl and Modifier.ltr have been removed. (
I080b3
)
- Require type T to be explicitly specified
for transitionDefinition. (
I1aded
)
- foundation.shape.corner package were flatten to foundation.share (
I46491
,
b/161887429
)
- Modifier.plus has been deprecated, use Modifier.then instead. 'Then' has a stronger signal of ordering, while also prohibits to type
Modifier.padding().background() + anotherModifier
, which breaks the chain and harder to read (
Iedd58
,
b/161529964
)
- Modifier.drawBackground has been renamed to Modifier.background (
I13677
)
Version 0.1.0-dev15
July 22, 2020
androidx.compose.animation:animation:0.1.0-dev15
and
androidx.compose.animation:animation-core:0.1.0-dev15
are released.
Version 0.1.0-dev15 contains these commits.
Dependencies Update
- To use the
0.1.0-dev15
version of Compose, you will need to update your dependencies
according to the new code snippets shown above in
Declaring dependencies
.
API Changes
- Transition API has been changed to return a
TransitionState instead of passing the TransitionState
to children. This makes the API more consistent with
animate() APIs. (
I24e38
)
- Modifier parameter added for Crossfade (
I87cfe
,
b/159706180
)
- Use AnimationSpec instead of AnimationBuilder in the top level APIs
to clarify the concept of static animation specification
- Improve the transition DSL by removing the lambda requirement for
creating AnimationSpecs such as tween, spring. They instead take
constructor params directly.
- Improve the overall ease of use of AnimationSpec opening up
constructors instead of relying on builders
- Change the duration and delay for KeyFrames and Tween to Int. This
eliminates unnecessary type casts and method overloading (for
supporting both Long and Int). (
Ica0b4
)
- Replaced usage of IntPx with Int. Replaced IntPxPosition
with IntOffset. Replaced IntPxSize with IntSize. (
Ib7b44
)
- In order to consolidate the
number of classes used to represent
sizing information, standardize
on usage of the Size class instead
of PxSize. This provides the benefits
of an inline class to leverage a long
to pack 2 float values to represent
width and height represented as floats. (
Ic0191
)
- In order to consolidate the
number of classes used to represent
positioning information, standardize
on usage of the Offset class instead
of PxPosition. This provides the benefits
of an inline class to leverage a long
to pack 2 float values to represent x
and y offsets represented as floats. (
I3ad98
)
- Replaced usage of Px class in various
compose classes as part of the large
refactoring effort to only rely on Dp
and primitive types for pixel parameters (
I086f4
)
- Added animate() support for Dp, Px, Size, Position, Bounds,
PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition,
IntPxBounds, and AnimationVector (
Ib7518
)
- Crossfade now accepts optional AnimationBuilder param to allow configuring the animation (
I6d6e0
)
- Replaced all nullable Color uses in API with
non-nullable and use Color.Unset instead of null (
Iabaa7
)
- Removed ValueHolder class. Restructured AnimatedValue, AnimatedFloat classes to
make the animation value field abstract so that subclasses can watch the value update.
- Added model classes for AnimatedValue, AnimatedFloat, etc.
- Added a new set of light-weight @Composable API for animating between values. (
I79530
)
- Breaking changes to the ambients API. See log and
Ambient<T>
documentation for details (
I4c7ee
,
b/143769776
)
- New repeat mode: Reverse. This mode reverses the previous
iteration as the animation repeats in RepeatableSpec
or VectorizedRepeatableSpec. (
Ibe0f5
)
- API additions to ManualAnimationClock:
hasObservers: Boolean
and constructor parameter
dispatchOnSubscribe: Boolean
(
Iaa134
)
- Added APIs for getting min/max bounds in AnimatedFloat (
Icd9cc
)
Bug Fixes
runOnIdleCompose
renamed to
runOnIdle
(
I83607
)
- Several testing APIs were renamed to be more intuitive. All
findXYZ APIs were renamed to onNodeXYZ. All doXYZ APIs were renamed to
performXYZ. (
I7f164
)
- Introduced low level stateless animation APIs. These APIs (
I63bf7
)
- The Recompose composable is no longer a useful abstraction. Most recomposition should happen as a result of MutableState assignments. For anything beyond that, it is recommended that you use the
invalidate
function to trigger a recomposition of the current scope. (
Ifc992
)
- Replaced usage of Px class in various
compose classes as part of the large
refactoring effort to only rely on Dp
and primitive types for pixel parameters.
Deleted Px class in its entirety (
I3ff33
)
- Replaced usage of Px class in various
compose classes as part of the large
refactoring effort to only rely on Dp
and primitive types for pixel parameters (
Id3434
)
- Crossfade can now work with null as initial value (
Iad6a4
,
b/155947711
)
- Replaced usage of Px class in various
compose classes as part of the large
refactoring effort to only rely on Dp
and primitive types for pixel parameters (
I19d02
)
- Consolidated CanvasScope implementations
so there is now just DrawScope and
ContentDrawScope
Renamed CanvasScope to DrawScope.
Updated DrawScope to implement Density
interface and provide LayoutDirection
Deleted DrawScope subclass in ContentDrawScope
Painter and PainterModifier have been updated
to no longer maintain an RTL property
themselves as DrawScope provides this already
without manually providing it (
I1798e
)
- Updated higher level
compose APIs that expose a Canvas to
expose CanvasScope instead. This removes
the need for consumers to maintain their
own Paint objects. For consumers that
still require access to a Canvas
they can use the drawCanvas extension
method which provides a callback to issue
drawing commands with the underlying
Canvas. (
I80afd
)
- Added verticalGravity and horizontalGravity parameters to Row and Column, respectively. (
I7dc5a
)
- ui-text module is renamed as ui-text-core (
I57dec
)
- Improve DrawModifier API:
- Made the receiver scope for draw() ContentDrawScope
- Removed all parameters on draw()
- DrawScope has same interface as former CanvasScope
- ContentDrawScope has drawContent() method (
Ibaced
,
b/152919067
)
runOnIdleCompose
and
runOnUiThread
are now global functions
instead of methods on ComposeTestRule. (
Icbe8f
)
- [Mutable]State property delegate operators moved to extensions
to support Kotlin 1.4 property delegate optimizations. Callers must add
imports to continue using
by state { ... }
or
by mutableStateOf(...)
. (
I5312c
)
- ColoredRect has been deprecated. Use
Box(Modifier.preferredSize(width, height).drawBackground(color))
instead. (
I499fa
,
b/152753731
)
- Replaced Modifier plus operator with factory extension functions (
I225e4
)
- Deprecated Center composable. It should be replaced either with the LayoutSize.Fill + LayoutAlign.Center modifier, or with one of the Box or Stack composables with suitable modifiers applied (
Idf5e0
)
- Renamed LayoutFlexible to LayoutWeight. Renamed tight parameter to fill. (
If4738
)
- The Opacity composable function has been replaced
with the drawOpacity modifier. (
I5fb62
)
- Tests using AndroidComposeTestRule now provide an animation
clock at the root of the composition that allows it to be paused,
resumed and advanced manually. (
Id54c5
)
- Support right-to-left direction in LayoutPadding modifier (
I9e8da
)
- Density and DensityScope were merged into one interface. Instead of ambientDensity() you can now use DensityAmbient.current. Instead of withDensity(density) just with(density) (
I11cb1
)
- Added copy methods to various
inline class types including:
- Offset
- Size
- Radius
- Motion
- TransformOrigin
- Deprecated Size.copy companion object method
favor of instance copy method (
Ife290
,
b/159905651
)
- androidx.compose.ViewComposer has been moved to androidx.ui.node.UiComposer
androidx.compose.Emittable has been removed. It was redundant with ComponentNode.
androidx.compose.ViewAdapters has been removed. They are no longer a supported use case.
Compose.composeInto has been deprecated. Use
setContent
or
setViewContent
instead.
Compose.disposeComposition has been deprecated. Use the
dispose
method on the
Composition
returned by
setContent
instead.
androidx.compose.Compose.subcomposeInto has moved to androidx.ui.core.subcomposeInto
ComponentNode#emitInsertAt has been renamed to ComponentNode#insertAt
ComponentNode#emitRemoveAt has been renamed to ComponentNode#removeAt
ComponentNode#emitMode has been renamed to ComponentNode#move (
Idef00
)