From 0f00846ddf327fe9e4ba866a7b078c0389121bfa Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Wed, 4 Mar 2020 15:46:18 +0900 Subject: [PATCH] album: scaling fixes --- lib/widgets/album/collection_scaling.dart | 13 +++++++++++-- lib/widgets/album/thumbnail.dart | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/widgets/album/collection_scaling.dart b/lib/widgets/album/collection_scaling.dart index ee94417d3..cbb787b6a 100644 --- a/lib/widgets/album/collection_scaling.dart +++ b/lib/widgets/album/collection_scaling.dart @@ -93,11 +93,12 @@ class _GridScaleGestureDetectorState extends State { // scroll to show the focal point thumbnail at its new position final sliverClosure = _renderSliver; final viewportClosure = _renderViewport; + final index = _metadata.index; WidgetsBinding.instance.addPostFrameCallback((_) { final scrollableContext = widget.scrollableKey.currentContext; final gridSize = (scrollableContext.findRenderObject() as RenderBox).size; final newExtent = gridSize.width / newColumnCount; - final row = _metadata.index ~/ newColumnCount; + final row = index ~/ newColumnCount; // `Scrollable.ensureVisible` only works on already rendered objects // `RenderViewport.showOnScreen` can find any `RenderSliver`, but not always a `RenderMetadata` final scrollOffset = viewportClosure.scrollOffsetOf(sliverClosure, (row + 1) * newExtent - gridSize.height / 2); @@ -127,12 +128,20 @@ class ScaleOverlay extends StatefulWidget { } class _ScaleOverlayState extends State { + bool _init = false; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) => setState(() => _init = true)); + } + @override Widget build(BuildContext context) { return MediaQueryDataProvider( child: IgnorePointer( child: AnimatedContainer( - color: Colors.black54, + color: _init ? Colors.black54 : Colors.transparent, duration: const Duration(milliseconds: 300), child: ValueListenableBuilder( valueListenable: widget.scaledCountNotifier, diff --git a/lib/widgets/album/thumbnail.dart b/lib/widgets/album/thumbnail.dart index a33e45dfb..0cd8b0e7e 100644 --- a/lib/widgets/album/thumbnail.dart +++ b/lib/widgets/album/thumbnail.dart @@ -85,7 +85,7 @@ class _ThumbnailOverlay extends StatelessWidget { @override Widget build(BuildContext context) { - final fontSize = min(14.0, (extent / 8).roundToDouble()); + final fontSize = min(14.0, (extent / 8)); final iconSize = fontSize * 2; return Column( mainAxisAlignment: MainAxisAlignment.end,