Keep the memory widget alive

This commit is contained in:
Vishnu Mohandas 2020-08-07 21:45:56 +05:30
parent 098b7cf86b
commit 127dcb7315
2 changed files with 10 additions and 3 deletions

View file

@ -76,6 +76,7 @@ class _GalleryState extends State<Gallery> {
@override
Widget build(BuildContext context) {
_logger.info("Building");
if (!_requiresLoad) {
return _onDataLoaded();
}
@ -114,7 +115,8 @@ class _GalleryState extends State<Gallery> {
_collatedFiles.length + (widget.headerWidget == null ? 1 : 2), // h4ck
itemBuilder: _buildListItem,
controller: _scrollController,
cacheExtent: 1000,
cacheExtent: 1500,
addAutomaticKeepAlives: true,
);
if (widget.onRefresh != null) {
return SmartRefresher(

View file

@ -18,7 +18,8 @@ class MemoriesWidget extends StatefulWidget {
_MemoriesWidgetState createState() => _MemoriesWidgetState();
}
class _MemoriesWidgetState extends State<MemoriesWidget> {
class _MemoriesWidgetState extends State<MemoriesWidget>
with AutomaticKeepAliveClientMixin {
@override
void initState() {
MemoriesService.instance.addListener(() {
@ -27,8 +28,12 @@ class _MemoriesWidgetState extends State<MemoriesWidget> {
super.initState();
}
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
super.build(context);
return FutureBuilder<List<Memory>>(
future: MemoriesService.instance.getMemories(),
builder: (context, snapshot) {
@ -294,7 +299,7 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
},
itemCount: widget.memories.length,
controller: _pageController,
extents: 2,
extents: 1,
onPageChanged: (index) async {
await MemoriesService.instance.markMemoryAsSeen(widget.memories[index]);
setState(() {