Kaynağa Gözat

Introduce a headerWidget to gallery

Vishnu Mohandas 5 yıl önce
ebeveyn
işleme
2a4d64f195
1 değiştirilmiş dosya ile 12 ekleme ve 2 silme
  1. 12 2
      lib/ui/gallery.dart

+ 12 - 2
lib/ui/gallery.dart

@@ -23,12 +23,14 @@ class Gallery extends StatefulWidget {
   final Future<void> Function() onRefresh;
   final SelectedFiles selectedFiles;
   final String tagPrefix;
+  final Widget headerWidget;
 
   Gallery({
     this.syncLoader,
     this.asyncLoader,
     this.reloadEvent,
     this.onRefresh,
+    this.headerWidget,
     @required this.selectedFiles,
     @required this.tagPrefix,
   });
@@ -108,7 +110,8 @@ class _GalleryState extends State<Gallery> {
       initialScrollOffset: _scrollOffset,
     );
     final list = ListView.builder(
-      itemCount: _collatedFiles.length + 1, // h4ck to load the next set
+      itemCount:
+          _collatedFiles.length + (widget.headerWidget == null ? 1 : 2), // h4ck
       itemBuilder: _buildListItem,
       controller: _scrollController,
       cacheExtent: 1000,
@@ -146,7 +149,14 @@ class _GalleryState extends State<Gallery> {
       }
       return loadWidget;
     }
-    var files = _collatedFiles[index];
+    var fileIndex = index;
+    if (widget.headerWidget != null) {
+      if (index == 0) {
+        return widget.headerWidget;
+      }
+      fileIndex--;
+    }
+    var files = _collatedFiles[fileIndex];
     return Column(
       children: <Widget>[_getDay(files[0].creationTime), _getGallery(files)],
     );