fix: revert avatar animation

This commit is contained in:
k1ngsterr1
2026-02-04 06:01:40 +05:00
parent f7fdf7f8fe
commit 612cfe1a6b
2 changed files with 22 additions and 10 deletions

View File

@@ -280,14 +280,20 @@ fun OtherProfileScreen(
// Тянем вверх (delta < 0) // Тянем вверх (delta < 0)
if (delta < 0) { if (delta < 0) {
// Сначала убираем overscroll // Сначала убираем overscroll
if (overscrollOffset > 0) { if (overscrollOffset > 0 || isPulledDown) {
// 🔥 FIX: Если isPulledDown=true - НЕ меняем overscrollOffset напрямую
// Только сбрасываем isPulledDown и даём анимации плавно свернуть
if (isPulledDown) {
// При достаточном свайпе вверх - плавно сворачиваем
if (delta < -10f) {
isPulledDown = false
// 🔥 НЕ сбрасываем overscrollOffset - пусть animatedOverscroll плавно вернётся к 0
}
return Offset(0f, delta) // Consume весь delta
}
val newOffset = (overscrollOffset + delta).coerceAtLeast(0f) val newOffset = (overscrollOffset + delta).coerceAtLeast(0f)
val consumed = overscrollOffset - newOffset val consumed = overscrollOffset - newOffset
overscrollOffset = newOffset overscrollOffset = newOffset
// Сбрасываем isPulledDown если вышли из expanded
if (overscrollOffset < maxOverscroll * 0.5f) {
isPulledDown = false
}
return Offset(0f, -consumed) return Offset(0f, -consumed)
} }
// Затем коллапсируем header // Затем коллапсируем header

View File

@@ -423,14 +423,20 @@ fun ProfileScreen(
// Тянем вверх (delta < 0) // Тянем вверх (delta < 0)
if (delta < 0) { if (delta < 0) {
// Сначала убираем overscroll // Сначала убираем overscroll
if (overscrollOffset > 0) { if (overscrollOffset > 0 || isPulledDown) {
// 🔥 FIX: Если isPulledDown=true - НЕ меняем overscrollOffset напрямую
// Только сбрасываем isPulledDown и даём анимации плавно свернуть
if (isPulledDown) {
// При достаточном свайпе вверх - плавно сворачиваем
if (delta < -10f) {
isPulledDown = false
// 🔥 НЕ сбрасываем overscrollOffset - пусть animatedOverscroll плавно вернётся к 0
}
return Offset(0f, delta) // Consume весь delta
}
val newOffset = (overscrollOffset + delta).coerceAtLeast(0f) val newOffset = (overscrollOffset + delta).coerceAtLeast(0f)
val consumed = overscrollOffset - newOffset val consumed = overscrollOffset - newOffset
overscrollOffset = newOffset overscrollOffset = newOffset
// Сбрасываем isPulledDown если вышли из expanded
if (overscrollOffset < maxOverscroll * 0.5f) {
isPulledDown = false
}
return Offset(0f, -consumed) return Offset(0f, -consumed)
} }
// Затем коллапсируем header // Затем коллапсируем header