fix: revert avatar animation
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user