feat: Optimize search animations and improve content rendering in SearchScreen; update Saved Messages icon handling in DialogItemContent
This commit is contained in:
@@ -171,8 +171,8 @@ class MainActivity : ComponentActivity() {
|
||||
else -> "main"
|
||||
},
|
||||
transitionSpec = {
|
||||
fadeIn(animationSpec = tween(600)) togetherWith
|
||||
fadeOut(animationSpec = tween(600))
|
||||
fadeIn(animationSpec = tween(300)) togetherWith
|
||||
fadeOut(animationSpec = tween(200))
|
||||
},
|
||||
label = "screenTransition"
|
||||
) { screen ->
|
||||
@@ -375,20 +375,20 @@ fun MainScreen(
|
||||
val isExitingSearch = !targetState.second && initialState.second
|
||||
|
||||
when {
|
||||
// 🚀 Вход в чат - чистый slide справа (как Telegram/iOS)
|
||||
// 🚀 Вход в чат - быстрый slide справа (как Telegram/iOS)
|
||||
// Новый экран полностью покрывает старый, никакой прозрачности
|
||||
isEnteringChat -> {
|
||||
slideInHorizontally(
|
||||
initialOffsetX = { fullWidth -> fullWidth }, // Начинаем за экраном справа
|
||||
initialOffsetX = { fullWidth -> fullWidth },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMediumLow // Плавно но быстро
|
||||
stiffness = Spring.StiffnessHigh // 🔥 Быстрее для плавности
|
||||
)
|
||||
) togetherWith slideOutHorizontally(
|
||||
targetOffsetX = { fullWidth -> -fullWidth / 4 }, // Старый экран уходит влево на 25%
|
||||
targetOffsetX = { fullWidth -> -fullWidth / 5 }, // Меньше смещение
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMediumLow
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -396,33 +396,33 @@ fun MainScreen(
|
||||
// 🔙 Выход из чата - обратный slide
|
||||
isExitingChat -> {
|
||||
slideInHorizontally(
|
||||
initialOffsetX = { fullWidth -> -fullWidth / 4 }, // Список возвращается слева
|
||||
initialOffsetX = { fullWidth -> -fullWidth / 5 },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMedium // Чуть быстрее при выходе
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
) togetherWith slideOutHorizontally(
|
||||
targetOffsetX = { fullWidth -> fullWidth }, // Чат уходит за экран вправо
|
||||
targetOffsetX = { fullWidth -> fullWidth },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMedium
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// 🔍 Вход в поиск - slide справа (как чаты)
|
||||
// 🔍 Вход в поиск - быстрый slide справа
|
||||
isEnteringSearch -> {
|
||||
slideInHorizontally(
|
||||
initialOffsetX = { fullWidth -> fullWidth }, // Начинаем за экраном справа
|
||||
initialOffsetX = { fullWidth -> fullWidth },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMediumLow
|
||||
stiffness = Spring.StiffnessHigh // 🔥 Быстрее для плавности
|
||||
)
|
||||
) togetherWith slideOutHorizontally(
|
||||
targetOffsetX = { fullWidth -> -fullWidth / 4 }, // Список уходит влево на 25%
|
||||
targetOffsetX = { fullWidth -> -fullWidth / 5 }, // Меньше смещение
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMediumLow
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -430,16 +430,16 @@ fun MainScreen(
|
||||
// ❌ Выход из поиска - обратный slide
|
||||
isExitingSearch -> {
|
||||
slideInHorizontally(
|
||||
initialOffsetX = { fullWidth -> -fullWidth / 4 }, // Список возвращается слева
|
||||
initialOffsetX = { fullWidth -> -fullWidth / 5 },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMedium
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
) togetherWith slideOutHorizontally(
|
||||
targetOffsetX = { fullWidth -> fullWidth }, // Поиск уходит за экран вправо
|
||||
targetOffsetX = { fullWidth -> fullWidth },
|
||||
animationSpec = spring(
|
||||
dampingRatio = Spring.DampingRatioNoBouncy,
|
||||
stiffness = Spring.StiffnessMedium
|
||||
stiffness = Spring.StiffnessHigh
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user