Introduce a headerWidget to gallery

This commit is contained in:
Vishnu Mohandas 2020-07-20 19:02:30 +05:30
parent 6469733ef0
commit 2a4d64f195

View file

@ -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)],
);