Files
PiliPlus/lib/common/widgets/image_viewer/hero.dart
dom 65ad8a0fdc opt anim
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-26 21:26:28 +08:00

27 lines
657 B
Dart

import 'package:flutter/widgets.dart';
Widget fromHero({
required Object tag,
required Widget child,
}) => Hero(
tag: tag,
createRectTween: createEndRectTween,
child: child,
);
RectTween createEndRectTween(Rect? begin, Rect? end) {
if (begin != null && end != null) {
final endWidth = end.width;
final endHeight = end.height;
// TODO: use real image rect
final beginRect = Rect.fromLTWH(
begin.left + (begin.width - endWidth) / 2,
begin.top + (begin.height - endHeight) / 2,
endWidth,
endHeight,
);
return RectTween(begin: beginRect, end: end);
}
return RectTween(begin: begin, end: end);
}