Skip to content

Instantly share code, notes, and snippets.

@fedotxxl
Created July 6, 2020 21:19
Show Gist options
  • Select an option

  • Save fedotxxl/29dc358df3a182c6c986b212df29e1f9 to your computer and use it in GitHub Desktop.

Select an option

Save fedotxxl/29dc358df3a182c6c986b212df29e1f9 to your computer and use it in GitHub Desktop.

Revisions

  1. fedotxxl created this gist Jul 6, 2020.
    33 changes: 33 additions & 0 deletions flutter_preloading_image_builder.dart
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    import 'package:evtrip/utils/my_future_nullable_builder.dart';
    import 'package:flutter/widgets.dart';

    class PreloadingImageBuilder extends StatefulWidget {
    final ImageProvider imageProvider;
    final AsyncWidgetBuilder<dynamic> builder;

    PreloadingImageBuilder({this.imageProvider, this.builder});

    @override
    _PreloadingImageBuilderState createState() => _PreloadingImageBuilderState();
    }

    class _PreloadingImageBuilderState extends State<PreloadingImageBuilder> {
    Future future;

    @override
    void didChangeDependencies() {
    super.didChangeDependencies();

    if (this.future == null) {
    this.future = precacheImage(this.widget.imageProvider, context);
    }
    }

    @override
    Widget build(BuildContext context) {
    return MyFutureNullableBuilder(
    future: this.future,
    builder: this.widget.builder,
    );
    }
    }