diff --git a/lib/ui/gallery.dart b/lib/ui/gallery.dart index 8ce74d64a..eb2ee4bb4 100644 --- a/lib/ui/gallery.dart +++ b/lib/ui/gallery.dart @@ -72,6 +72,9 @@ class _GalleryState extends State { _saveScrollPosition(); }); }); + if (widget.asyncLoader == null) { + _hasLoadedAll = true; + } super.initState(); } @@ -108,6 +111,7 @@ class _GalleryState extends State { return nothingToSeeHere; } _collateFiles(); + _logger.info("Collated length " + _collatedFiles.length.toString()); _scrollController = ScrollController( initialScrollOffset: _scrollOffset, ); @@ -146,18 +150,23 @@ class _GalleryState extends State { // Eagerly load next batch _loadNextItems(); } - if (index == _collatedFiles.length) { - if (_hasLoadedAll || widget.asyncLoader == null) { - return Container(); - } - return loadWidget; - } - var fileIndex = index; + var fileIndex; if (widget.headerWidget != null) { if (index == 0) { return widget.headerWidget; } - fileIndex--; + fileIndex = index - 1; + } else { + fileIndex = index; + } + if (fileIndex == _collatedFiles.length) { + if (widget.asyncLoader != null) { + if (!_hasLoadedAll) { + return loadWidget; + } else { + return Container(); + } + } } if (fileIndex < 0 || fileIndex >= _collatedFiles.length) { return Container(); @@ -205,6 +214,7 @@ class _GalleryState extends State { } Widget _getGallery(List files) { + _logger.info("Building gallery with " + files.length.toString()); return GridView.builder( shrinkWrap: true, padding: EdgeInsets.only(bottom: 12),