Fixed
Status Update
Comments
ro...@t-online.de <ro...@t-online.de> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
ha...@google.com <ha...@google.com>
ap...@google.com <ap...@google.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
ap...@google.com <ap...@google.com> #4
-
Second crash in the description is from a real device. Experienced it myself on two different Xiaomi phones, plus lots of crashes from users in the Google Play console.
-
Dynamic features are not used in the application.
As a wild guess, I have downgraded build tools from 31.0.0 to 30.0.3, compileSdk from 31 to 30, and moved all work with Language ID to the service in a separate process (just to be sure that crash can kill secondary process instead of main). This combination is in beta for 2 days by now and I don't see any SIGSEGV crashes.
Description
Issue
Currently, it is very hard to implement more complex gesture-driven animations.
ConstraintLayout
or other workarounds. It would be nice to have a convenience API to turn these gestures into an animation progess float (or even directly into aTransition
)AnimatedContent
,AnimatedVisibility
or in theTransition
API. I feel like controlling e.g. a crossfade smoothly with a gesture should be very simple.Proposed Solution
Resulting from these considerations, these are the API additions I propose:
AnchoredDraggableState
(instead of onlyoffset
).Something like:
Transition
/AnimatedContent
/etc. but also provide an animation progress (this would probably require to also provide a source state). For Composables likeAnimatedContent
this should probably be a lambda parameter to avoid unncecessary recompositions.AnimatedDraggableState
into a gesture drivenTransition
(or any other way to link those two) since they would really play well together in my opinion.Concrete Use Case
I have a composable that can be in multiple different layout states (concretely: Item containers (lists) that can be collapsed and then slide off screen). These states don't all include the same composables (once the container has been collapsed it doesn't need to compose its items) and have different sizes (the container shrinks when collapsing). Ideally, I would like to use
AnimatedContent
orCrossfade
for the container shrinking and anoffset
modifier to make it slide off screen.Now I want this animation to be powered by a continuous gesture, but it should be possible to stop in the "collapsed but still on-screen" state. So I would like to use an
anchoredDraggable
with three states and define anchors inDp
. TheDp
difference between "collapsed" and "off-screen" would be exactly the width of the collapsed containers in order to have them slide out in sync with the motion of my finger.I imagine something like this: