From af925a588b9fd0dd145f50289e80eeede6fb9a76 Mon Sep 17 00:00:00 2001 From: Michal Brzezinski Date: Tue, 29 Oct 2024 15:05:59 +0000 Subject: Animating button alpha instead of visibility This prevents UI shifting when button becomes visible and is added to the composable tree Fixes: 376063732 Test: manual Flag: com.android.systemui.shared.new_touchpad_gestures_tutorial Change-Id: I04fc4e81746a9546ba6d54267a6805e5b5a2ffb6 --- .../tutorial/ui/composable/ActionTutorialContent.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt index edc7c1d6361f..6dd56de20ea6 100644 --- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt +++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt @@ -18,8 +18,7 @@ package com.android.systemui.inputdevice.tutorial.ui.composable import android.content.res.Configuration import androidx.annotation.RawRes -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.fadeIn +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -34,8 +33,10 @@ import androidx.compose.foundation.layout.width import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -75,9 +76,8 @@ fun ActionTutorialContent( VerticalDescriptionAndAnimation(actionState, config, Modifier.weight(1f)) } } - AnimatedVisibility(visible = actionState is Finished, enter = fadeIn()) { - DoneButton(onDoneButtonClicked = onDoneButtonClicked) - } + val buttonAlpha by animateFloatAsState(if (actionState is Finished) 1f else 0f) + DoneButton(onDoneButtonClicked, Modifier.graphicsLayer { alpha = buttonAlpha }) } } -- cgit v1.2.3-59-g8ed1b