fix:动画问题

This commit is contained in:
fansangg
2026-06-14 04:02:10 +08:00
parent b5bb7ed77e
commit 87f01900c3
@@ -2,6 +2,7 @@ package io.legado.app.ui.book.read.sheet
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.tween
import androidx.compose.animation.expandVertically
import androidx.compose.animation.fadeIn
@@ -22,13 +23,12 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.TextFields
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableIntStateOf
@@ -43,21 +43,19 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringArrayResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import io.legado.app.R
import io.legado.app.ui.theme.LegadoTheme
import io.legado.app.data.repository.ReadPreferences
import io.legado.app.data.repository.ReadSettingsRepository
import io.legado.app.help.config.ReadBookConfig
import io.legado.app.ui.book.read.ConfigUpdate
import io.legado.app.ui.book.read.ReadBookIntent
import io.legado.app.ui.theme.LegadoTheme
import io.legado.app.ui.widget.components.FontSelectSheet
import io.legado.app.ui.widget.components.dialog.ColorPickerSheet
import io.legado.app.ui.widget.components.settingItem.TinyClickableSettingItem
@@ -70,6 +68,7 @@ import io.legado.app.utils.getCompatColor
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.koin.compose.koinInject
import kotlin.time.Duration.Companion.milliseconds
// Color picker IDs
private const val COLOR_HEADER = 7
@@ -127,19 +126,23 @@ internal fun HeaderFooterPage(
LaunchedEffect(expandHeaderPadding) {
if (expandHeaderPadding) {
snapshotFlow { headerScrollState.maxValue }
.collect { maxVal ->
headerScrollState.scrollTo(maxVal)
}
//等动画结束后再滚动到底部,否则maxValue值不是最新
delay(300.milliseconds)
headerScrollState.animateScrollTo(
headerScrollState.maxValue,
animationSpec = tween(durationMillis = 200, easing = LinearEasing)
)
}
}
LaunchedEffect(expandFooterPadding) {
if (expandFooterPadding) {
snapshotFlow { footerScrollState.maxValue }
.collect { maxVal ->
footerScrollState.scrollTo(maxVal)
}
//等动画结束后再滚动到底部,否则maxValue值不是最新
delay(300.milliseconds)
footerScrollState.animateScrollTo(
footerScrollState.maxValue,
animationSpec = tween(durationMillis = 200, easing = LinearEasing)
)
}
}
@@ -319,7 +322,9 @@ internal fun HeaderFooterPage(
modifier = Modifier.size(20.dp),
)
},
onClick = { expandHeaderPadding = !expandHeaderPadding },
onClick = {
expandHeaderPadding = !expandHeaderPadding
},
)
AnimatedVisibility(
visible = expandHeaderPadding,
@@ -441,7 +446,9 @@ internal fun HeaderFooterPage(
modifier = Modifier.size(20.dp),
)
},
onClick = { expandFooterPadding = !expandFooterPadding },
onClick = {
expandFooterPadding = !expandFooterPadding
},
)
AnimatedVisibility(
visible = expandFooterPadding,