From b32a7747f60dee7b70ddfcc338960e20a4b8a724 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Fri, 10 Apr 2020 17:29:02 +0900 Subject: [PATCH] fixes --- lib/labs/sliver_known_extent_list.dart | 2 +- lib/widgets/album/grid/scaling.dart | 3 ++- lib/widgets/album/tile_extent_manager.dart | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/labs/sliver_known_extent_list.dart b/lib/labs/sliver_known_extent_list.dart index 244109c69..aa7723ff3 100644 --- a/lib/labs/sliver_known_extent_list.dart +++ b/lib/labs/sliver_known_extent_list.dart @@ -49,7 +49,7 @@ class RenderSliverKnownExtentBoxAdaptor extends RenderSliverMultiBoxAdaptor { SectionLayout sectionAtOffset(double scrollOffset) => sectionLayouts.firstWhere((section) => section.hasChildAtOffset(scrollOffset), orElse: () => null); double indexToLayoutOffset(int index) { - return sectionAtIndex(index).indexToLayoutOffset(index); + return (sectionAtIndex(index) ?? sectionLayouts.last).indexToLayoutOffset(index); } int getMinChildIndexForScrollOffset(double scrollOffset) { diff --git a/lib/widgets/album/grid/scaling.dart b/lib/widgets/album/grid/scaling.dart index 33101d3f4..cc90ac6c9 100644 --- a/lib/widgets/album/grid/scaling.dart +++ b/lib/widgets/album/grid/scaling.dart @@ -52,7 +52,7 @@ class _GridScaleGestureDetectorState extends State { final renderMetaData = firstOf(result); // abort if we cannot find an image to show on overlay if (renderMetaData == null) return; - _renderSliver = firstOf(result); + _renderSliver = firstOf(result); _renderViewport = firstOf(result); _metadata = renderMetaData.metaData; _startExtent = tileExtentNotifier.value; @@ -99,6 +99,7 @@ class _GridScaleGestureDetectorState extends State { _scaledExtentNotifier = null; if (newExtent == oldExtent) return; + // TODO TLAD fix scroll to specific thumbnail with custom SliverList // scroll to show the focal point thumbnail at its new position final sliverClosure = _renderSliver; final viewportClosure = _renderViewport; diff --git a/lib/widgets/album/tile_extent_manager.dart b/lib/widgets/album/tile_extent_manager.dart index 3c78bdcd8..ce10d2358 100644 --- a/lib/widgets/album/tile_extent_manager.dart +++ b/lib/widgets/album/tile_extent_manager.dart @@ -20,6 +20,7 @@ class TileExtentManager { if ((newExtent ?? 0) == 0) { numColumns = columnCountDefault; } else { + debugPrint('TODO TLAD tileExtentMin=$tileExtentMin mqSize=$mqSize'); newExtent = newExtent.clamp(tileExtentMin, extentMaxForSize(mqSize)); numColumns = max(columnCountMin, (availableWidth / newExtent).round()); }