mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	fix(mobile): improve hero animation (#3636)
This commit is contained in:
		@@ -62,11 +62,17 @@ class ThumbnailImage extends HookConsumerWidget {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Widget buildImage(Asset asset) {
 | 
			
		||||
      var image = ImmichImage(
 | 
			
		||||
        asset,
 | 
			
		||||
      var image = SizedBox(
 | 
			
		||||
        width: 300,
 | 
			
		||||
        height: 300,
 | 
			
		||||
        child: Hero(
 | 
			
		||||
          tag: asset.id + heroOffset,
 | 
			
		||||
          child: ImmichImage(
 | 
			
		||||
            asset,
 | 
			
		||||
            useGrayBoxPlaceholder: useGrayBoxPlaceholder,
 | 
			
		||||
            fit: BoxFit.cover,
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
      if (!multiselectEnabled || !isSelected) {
 | 
			
		||||
        return image;
 | 
			
		||||
@@ -114,8 +120,6 @@ class ThumbnailImage extends HookConsumerWidget {
 | 
			
		||||
        onSelect?.call();
 | 
			
		||||
        HapticFeedback.heavyImpact();
 | 
			
		||||
      },
 | 
			
		||||
      child: Hero(
 | 
			
		||||
        tag: asset.id + heroOffset,
 | 
			
		||||
      child: Stack(
 | 
			
		||||
        children: [
 | 
			
		||||
          Container(
 | 
			
		||||
@@ -181,7 +185,6 @@ class ThumbnailImage extends HookConsumerWidget {
 | 
			
		||||
            ),
 | 
			
		||||
        ],
 | 
			
		||||
      ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -276,6 +276,7 @@ class _PhotoViewGalleryState extends State<PhotoViewGallery> {
 | 
			
		||||
            filterQuality: pageOption.filterQuality,
 | 
			
		||||
            basePosition: pageOption.basePosition,
 | 
			
		||||
            disableGestures: pageOption.disableGestures,
 | 
			
		||||
            heroAttributes: pageOption.heroAttributes,
 | 
			
		||||
            child: pageOption.child,
 | 
			
		||||
          )
 | 
			
		||||
        : PhotoView(
 | 
			
		||||
@@ -306,21 +307,9 @@ class _PhotoViewGalleryState extends State<PhotoViewGallery> {
 | 
			
		||||
            basePosition: pageOption.basePosition,
 | 
			
		||||
            disableGestures: pageOption.disableGestures,
 | 
			
		||||
            errorBuilder: pageOption.errorBuilder,
 | 
			
		||||
            heroAttributes: pageOption.heroAttributes,
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
    if (pageOption.heroAttributes != null) {
 | 
			
		||||
      return Hero(
 | 
			
		||||
        tag: pageOption.heroAttributes!.tag,
 | 
			
		||||
        createRectTween: pageOption.heroAttributes!.createRectTween,
 | 
			
		||||
        flightShuttleBuilder: pageOption.heroAttributes!.flightShuttleBuilder,
 | 
			
		||||
        placeholderBuilder: pageOption.heroAttributes!.placeholderBuilder,
 | 
			
		||||
        transitionOnUserGestures: pageOption.heroAttributes!.transitionOnUserGestures,
 | 
			
		||||
        child: ClipRect(
 | 
			
		||||
          child: photoView,
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return ClipRect(
 | 
			
		||||
      child: photoView,
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
@@ -405,7 +405,7 @@ class PhotoViewCoreState extends State<PhotoViewCore>
 | 
			
		||||
            gaplessPlayback: widget.gaplessPlayback ?? false,
 | 
			
		||||
            filterQuality: widget.filterQuality,
 | 
			
		||||
            width: scaleBoundaries.childSize.width * scale,
 | 
			
		||||
            fit: BoxFit.contain,
 | 
			
		||||
            fit: BoxFit.cover,
 | 
			
		||||
          );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user