fix(player): 调整双击飘心动画
This commit is contained in:
1 parent
63296d2a92
commit
bea50ab32f
8 files changed
+52
-20
No files matched your search
@@ -639,6 +639,7 @@ class _PlayerPageState extends State<PlayerPage>
|
||||
);
|
||||
return Stack(
|
||||
fit: StackFit.expand,
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
PlayerRenderStack(
|
||||
pageController: _pageController,
|
||||
@@ -662,6 +663,7 @@ class _PlayerPageState extends State<PlayerPage>
|
||||
);
|
||||
final body = Stack(
|
||||
fit: StackFit.expand,
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
content,
|
||||
if (widget.homeMode &&
|
||||
@@ -971,6 +973,7 @@ class _PlayerPageState extends State<PlayerPage>
|
||||
|
||||
return Stack(
|
||||
fit: StackFit.expand,
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (selected &&
|
||||
!entryLoading &&
|
||||
|
||||
@@ -126,6 +126,7 @@ class _HomeFeedOverlayState extends State<HomeFeedOverlay> {
|
||||
return SafeArea(
|
||||
bottom: false,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Positioned.fill(
|
||||
child: PlayerTapGestureRegion(
|
||||
|
||||
@@ -4,31 +4,32 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../core/theme/app_colors.dart';
|
||||
|
||||
const int _heartDurationMs = 680;
|
||||
const int _heartDurationMs = 1300;
|
||||
const int _lastHeartDelayMs = 200;
|
||||
const double _heartPopPortion = 0.18;
|
||||
const double _heartStartScale = 0.7;
|
||||
const double _heartHoldPortion = 0.45;
|
||||
const double _heartHoldPortion = 0.65;
|
||||
|
||||
const List<_HeartParticle> _hearts = [
|
||||
_HeartParticle(
|
||||
delay: 0,
|
||||
travel: 108,
|
||||
travel: 175,
|
||||
drift: 0,
|
||||
size: 48,
|
||||
size: 44,
|
||||
color: AppColors.doubleTapHeartRed,
|
||||
),
|
||||
_HeartParticle(
|
||||
delay: 50,
|
||||
travel: 96,
|
||||
drift: -28,
|
||||
size: 36,
|
||||
delay: 110,
|
||||
travel: 150,
|
||||
drift: -32,
|
||||
size: 34,
|
||||
color: AppColors.doubleTapHeartPink,
|
||||
),
|
||||
_HeartParticle(
|
||||
delay: 90,
|
||||
travel: 118,
|
||||
drift: 26,
|
||||
size: 40,
|
||||
delay: _lastHeartDelayMs,
|
||||
travel: 165,
|
||||
drift: 30,
|
||||
size: 38,
|
||||
color: AppColors.doubleTapHeartRed,
|
||||
),
|
||||
];
|
||||
@@ -38,6 +39,10 @@ class PlayerDoubleTapHeartBurst extends StatefulWidget {
|
||||
const PlayerDoubleTapHeartBurst({super.key, required this.onCompleted});
|
||||
|
||||
static const int particleCount = 3;
|
||||
static const int singleHeartDurationMs = _heartDurationMs;
|
||||
static const Duration animationDuration = Duration(
|
||||
milliseconds: _lastHeartDelayMs + _heartDurationMs,
|
||||
);
|
||||
|
||||
final VoidCallback onCompleted;
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ class PlayerPlaybackOverlay extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Positioned.fill(
|
||||
child: PlayerTapGestureRegion(
|
||||
|
||||
@@ -70,6 +70,7 @@ class _PlayerTapGestureRegionState extends State<PlayerTapGestureRegion> {
|
||||
onPointerDown: _handlePointerDown,
|
||||
child: Stack(
|
||||
fit: StackFit.expand,
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
GestureDetector(
|
||||
key: widget.gestureKey,
|
||||
|
||||
Reference in new issue
Block a user