Flutter pre-load PageView widget

Overview

PreloadPageView

Like the name, this is the widget to support Pre-load function for PageView widget.

For better user experience sometimes we need pre-load the images/web requests before user really scrolled to next PageView but the official PageView don't support that.So this is the time to use PreloadPageView.

Usage

Everything is similar like PageView, you need PreloadPageView.builder and PreloadPageController to create the PreloadPageView.

Also you can use preloadPagesCount to set preload pages count when you need.

Example

  @override
  Widget build(BuildContext context) {
    return new PreloadPageView.builder(
      itemCount: ...,
      itemBuilder: ...,
      onPageChanged: (int position) {...},
      .....
      preloadPagesCount: 3,
      controller: PreloadPageController(),
    );
  }

If you found any issue in the newest beta version, please try stable version [0.1.4]. Please give us a star if you like this widget. Your star could help us update or fix bugs quickly.

Comments
  • "Unexpected null value." when running against Channel beta, 1.23.0-18.1.pre

    After upgrading the Flutter beta channel to latest: [✓] Flutter (Channel beta, 1.23.0-18.1.pre, on Mac OS X 10.15.7 19H2 x86_64, locale en-US)

    I get the following output in the console and an error in place of the PreloadPageView widget:

    ════════ Exception caught by widgets library ═══════════════════════════════════
    The following TypeErrorImpl was thrown building NotificationListener<ScrollNotification>:
    Unexpected null value.
    
    The relevant error-causing widget was
    NotificationListener<ScrollNotification>
    ../…/lib/preload_page_view.dart:572
    When the exception was thrown, this was the stack
    dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49      throw_
    dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 518:63  nullCheck
    packages/flutter/src/widgets/scroll_position.dart 166:31                          get pixels
    packages/preload_page_view/preload_page_view.dart 269:16                          restoreScrollOffset
    packages/flutter/src/widgets/scroll_position.dart 106:7                           new
    ...
    ════════════════════════════════════════════════════════════════════════════════
    

    Any help or guidance is appreciated. I created a new project with only the example code to ensure it was not a conflict with my app-specific implementation.

    Ready for review 
    opened by alexagat 8
  • video play all in list

    video play all in list

    Hi, i am using this package with a better player which I initialize the controller then it plays all video which I set as a preload is playing even it did not visible on-screen even class close but still playing on the background before this package it did not any issue. kindly look into this matter here is my code: in which background some random music playing i even did not add or previous video audio also playing

    PreloadPageView.builder(
              preloadPagesCount: 5,
              controller: PreloadPageController(),
              scrollDirection: Axis.vertical,
                    itemBuilder: (BuildContext context, int index) {
                      return Container(
                        padding: EdgeInsets.only(bottom: 13.0),
                        child: Container(
                          child: Stack(
                            children: [
                              Container(
                                child: BetterPlayerListVideoPlayer(
                                              BetterPlayerDataSource(
                                                  BetterPlayerDataSourceType.network,
                                                  '${data[index]['media']}'),
                                              playFraction: 0.8,
                                              betterPlayerListVideoPlayerController:
                                                  controller,
                                              configuration:
                                                  BetterPlayerConfiguration(
                                                expandToFill: true,
                                                aspectRatio: 1.0,
                                                autoPlay: true,
                                                autoDispose: true,
                                                controlsConfiguration:
                                                    BetterPlayerControlsConfiguration(
                                                        enableMute: false,
                                                        enableOverflowMenu: false,
                                                        enablePlayPause: false,
                                                        enableFullscreen: false,
                                                        enableSkips: false,
                                                        enableProgressText: false,
                                                        playIcon: CupertinoIcons
                                                            .play_arrow_solid,
                                                        controlBarColor:
                                                            Colors.transparent,
                                                        enableProgressBar: false),
                                              ),
                                            )
                                 
                              ),
                            ],
                          ),
                        ),
                      );
                    },
                    itemCount: data.length,
                  ),
    
    opened by itsdani121 5
  • this plugin isn't working as expected in PreloadPageview.builder

    this plugin isn't working as expected in PreloadPageview.builder

    I have a build method in individual page views and I have set preloadPagesCount = 10. I am expecting this build method to be called 10 times but the page is built one at a time.

    PreloadPageController pageController =
          PreloadPageController();
    
    
    Container(
                    child: PreloadPageView.builder(
                        preloadPagesCount: _feedData != null ? 5 : 0,
                        controller: pageController,
                        itemCount: _feedData != null ? _feedData.length : 0,
                        scrollDirection: Axis.horizontal,
                        itemBuilder: (context, position) {
                          return new HomeOnePage(
                              position: position,
                              feedData: _feedData,
                              feedType: _feedType);
                        }))
    

    HomeOnePage widget

    ...
    @override
      Widget build(BuildContext context) {
        print('building ${widget.position}');
    ....
    }
    ....
    
    

    The print statement prints only once when the page is active(loaded/swiped-to)

    I really liked the premise of this plugin and would be really grateful if you can help me with this.

    opened by x-raay 2
  • Using scale transformation in child view leads to view span across multiple viewport

    Using scale transformation in child view leads to view span across multiple viewport

    If I use a scale widget in any of my child widget, that view spans across multiple viewport

    sample:

    Transform.scale(
                    scale: controller.value.aspectRatio / deviceRatio,
                    child: AspectRatio(
                      aspectRatio: controller.value.aspectRatio,
                      child: CameraPreview(controller),
                    ),
                  ),
    
    opened by droid-it 2
  • Default value for preloadPagesCount property and throwing errors on incorrect values

    Default value for preloadPagesCount property and throwing errors on incorrect values

    This resolves #2 with throwing proper exceptions in constructor and resolves #3 with a default value of 1. 0s are now allowed.

    Also, I've updated the example app but it refers to my fork of this repo so it should be changed after merging this pull request.

    LGTM 
    opened by wrbl606 2
  • Negative numbers in preloadPagesCount

    Negative numbers in preloadPagesCount

    Hey again, Do you know what is happening when preloadPagesCount is negative? I tried with preloadPagesCount = -1 and -3 and in both cases it behaves like I'll just put a 1 - is it desired behavior?

    Maybe a negative numbers in preloadPagesCount property should throw an error since those are not logically correct?

    opened by wrbl606 2
  • Preload pages count

    Preload pages count

    Hey, Is it possible to make the PreloadPageView customizable in terms of how many pages will be preloaded? As you mentioned in README currently the value is only 1.

    PreloadPageView.builder(
          itemCount: ...,
          itemBuilder: ...,
          // maybe a property like the one below?
          preloadPagesCount: 3,
          onPageChanged: (int position) {...},
          .....
          controller: PreloadPageController(),
        );
    
    opened by wrbl606 2
  • getting an error.. Any solution

    getting an error.. Any solution

    /D:/flutter/.pub-cache/hosted/pub.dartlang.org/preload_page_view-0.1.5/lib/preload_page_view.dart:301:27: Error: The getter 'hasPixels' isn't defined for the class '_PagePosition'.

    opened by mahmud1180 1
  • Issues with latest version of Flutter

    Issues with latest version of Flutter

    On Cannel Stable: 2.0.1

    Error: The following _CastError was thrown during performLayout(): Null check operator used on a null value

    Seems to happen in _PagePosition.applyViewportDimension

    opened by Martibis 1
  • Does preloadPagesCount cover the previous pages symetrically?

    Does preloadPagesCount cover the previous pages symetrically?

    It is often that we display a PageView which starts from the middle page instead of start(page zero).

    Let's say there are 30 Pages and we display Page 15 at the moment. If preloadPagesCount is 3, I should expect to preload pages 14,15 and 16. Because we don't know if the user will swipe right or left initally.

    If you don't want to make a breaking change, we can add an optional field called "notSymetric" and it would default to true. if we set it to false, it would work as I described above.

    opened by aytunch 1
  • Not providing the preloadPagesCount throw an Exception

    Not providing the preloadPagesCount throw an Exception

    When you update the library from 0.1.2 to 0.1.3 and you'll not provide the new preloadPagesCount property, widget will throw an exception:

    I/flutter (28504): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    I/flutter (28504): The following NoSuchMethodError was thrown building Scrollable(axisDirection: right, physics:
    I/flutter (28504): PageScrollPhysics, dirty, dependencies: [_LocalizationsScope-[GlobalKey#d9d95], _InheritedTheme,
    I/flutter (28504): ScrollConfiguration], state: ScrollableState#cda16(position: _PagePosition#c976f(offset: null,
    I/flutter (28504): range: null..null, viewport: null, ScrollableState, PageScrollPhysics -> ClampingScrollPhysics,
    I/flutter (28504): IdleScrollActivity#f9ea2, ScrollDirection.idle))):
    I/flutter (28504): The method '<=' was called on null.
    I/flutter (28504): Receiver: null
    I/flutter (28504): Tried calling: <=(1)
    I/flutter (28504): 
    I/flutter (28504): When the exception was thrown, this was the stack:
    I/flutter (28504): #0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
    I/flutter (28504): #1      _PreloadPageViewState.build.<anonymous closure> (package:preload_page_view/preload_page_view.dart:554:45)
    I/flutter (28504): #2      ScrollableState.build (package:flutter/src/widgets/scrollable.dart:551:27)
    I/flutter (28504): #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27)
    I/flutter (28504): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3736:15)
    I/flutter (28504): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
    I/flutter (28504): #6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
    I/flutter (28504): #7      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
    I/flutter (28504): #8      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
    I/flutter (28504): #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
    I/flutter (28504): #10     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
    I/flutter (28504): #11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
    I/flutter (28504): #12     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
    I/flutter (28504): #13     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
    I/flutter (28504): #14     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
    I/flutter (28504): #15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
    I/flutter (28504): #16     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
    I/flutter (28504): #17     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
    I/flutter (28504): #18     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
    I/flutter (28504): #19     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
    I/flutter (28504): #20     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
    I/flutter (28504): #21     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
    I/flutter (28504): #22     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
    I/flutter (28504): #23     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
    I/flutter (28504): #24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
    I/flutter (28504): #25     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
    I/flutter (28504): #26     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2273:33)
    I/flutter (28504): #27     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
    I/flutter (28504): #28     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268:5)
    I/flutter (28504): #29     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988:15)
    I/flutter (28504): #30     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928:9)
    I/flutter (28504): #31     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:840:5)
    I/flutter (28504): #35     _invoke (dart:ui/hooks.dart:209:10)
    I/flutter (28504): #36     _drawFrame (dart:ui/hooks.dart:168:3)
    I/flutter (28504): (elided 3 frames from package dart:async)
    I/flutter (28504): ════════════════════════════════════════════════════════════════════════════════════════════════════
    

    I suggest assigning preloadPagesCount some default value. I think 1 will be ok. When we agree to some default value I'll happy to create a pull request with this change.

    opened by wrbl606 1
  • i am using better player but in preloadpageview its play all video at time

    i am using better player but in preloadpageview its play all video at time

    import 'package:app/service/ServerDetails.dart'; import 'package:app/service/web_service.dart'; import 'package:better_player/better_player.dart'; // import 'package:chewie/chewie.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart'; import 'package:preload_page_view/preload_page_view.dart'; // import 'package:video_player/video_player.dart'; import 'package:wakelock/wakelock.dart';

    class FunBoxScreen extends StatefulWidget { const FunBoxScreen({Key key}) : super(key: key);

    @override State createState() => _FunBoxScreenState(); }

    class _FunBoxScreenState extends State { int _currentPage = 0; ScrollController _scrollController = ScrollController(); int currentIndex = 0; bool loading = true; bool tempLoading = true; void updateCurrentIndex() { _currentPage + 1; }

    @override void initState() { getFunBoxData(); Wakelock.enable();

    super.initState();
    
    setState(() {});
    

    }

    final PageController controller = PageController( initialPage: 0, );

    List listItem = []; Future getFunBoxData({bool isRefresh = false}) async { loading = true; List getList = await Webservice.getFunBoxData(_currentPage, 10); if (getList.isEmpty) { Fluttertoast.showToast(msg: 'no more data'); } else { _currentPage = _currentPage + 1; for (int i = 0; i < getList.length; i++) { listItem.add(getList[i]); } setState(() {}); } await Future.delayed(Duration(seconds: 2)); loading = false; setState(() {}); }

    @override Widget build(BuildContext context) { return Scaffold( floatingActionButton: listItem.isEmpty ? SizedBox() : currentIndex == listItem.length ? Padding( padding: const EdgeInsets.only(bottom: 10), child: ElevatedButton( style: ButtonStyle( backgroundColor: MaterialStateProperty.all(Colors.red), shape: MaterialStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(18.0), side: BorderSide(color: Colors.black)), ), ), onPressed: () { getFunBoxData(); setState(() {}); }, child: Text( "Load More", style: TextStyle( fontSize: 20.sp, fontWeight: FontWeight.bold), ), ), ) : SizedBox(), floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, body: listItem.isEmpty ? Center(child: CircularProgressIndicator()) : PreloadPageView.builder( onPageChanged: (value) { currentIndex = value + 1; setState(() {}); }, controller: PreloadPageController(initialPage: 0), scrollDirection: Axis.vertical, itemCount: listItem.length, preloadPagesCount: 5, itemBuilder: (context, index) { String url = ServerDetails.getVideo + listItem[index]["media"];

                if (listItem[index]["type"] == "image") {
                  return imageScreen(listItem, index);
                } else {
                  return VideoScreen(url: url);
                }
              },
            ),
    );
    

    }

    Widget imageScreen(List listItem, index) { return Container( color: Colors.black, height: double.maxFinite, child: Image.network( ServerDetails.getImages + listItem[index]["media"], ), ); }

    @override void dispose() { Wakelock.disable();

    super.dispose();
    

    } }

    class VideoScreen extends StatefulWidget { final String url; const VideoScreen({Key key, this.url}) : super(key: key);

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

    class _VideoScreenState extends State { BetterPlayerController _betterPlayerController;

    @override void initState() { super.initState(); BetterPlayerControlsConfiguration configuration = BetterPlayerControlsConfiguration( showControls: true, enableFullscreen: false, enableProgressBar: false, enableSkips: false, enableAudioTracks: false, enablePlayPause: false, enableRetry: false, enableMute: false, enableOverflowMenu: false, enableProgressText: false, enablePip: false); BetterPlayerConfiguration betterPlayerConfiguration = BetterPlayerConfiguration( fullScreenByDefault: false, deviceOrientationsOnFullScreen: [DeviceOrientation.portraitUp], deviceOrientationsAfterFullScreen: [DeviceOrientation.portraitUp], autoPlay: true, aspectRatio: 9 / 16, fit: BoxFit.contain, controlsConfiguration: configuration, ); var dataSource = BetterPlayerDataSource(BetterPlayerDataSourceType.network, widget.url);

    _betterPlayerController = BetterPlayerController(betterPlayerConfiguration);
    _betterPlayerController.setupDataSource(dataSource);
    

    }

    @override void dispose() { _betterPlayerController.dispose(); super.dispose(); }

    @override Widget build(BuildContext context) { return Container( color: Colors.black, height: Get.height, width: Get.width, child: BetterPlayer(controller: _betterPlayerController), ); } }

    opened by Karanvthakur148 0
  • Remove Preloaded page from Memory

    Remove Preloaded page from Memory

    Is there a way to remove a preloaded page from the memory? Im building a video listing app which is taking up a lot of memory due to which the app crashes. using VideoPlayer with PreloadPageView

    opened by usamawork61 3
  • cache

    cache

    thanks for this!

    since there's a lot of heavy lifting already happening, can the preload optionally store to a cache? right now caching for video is way behind so this would be great for video...images and everything.

    thoughts?

    opened by jtkeyva 0
  • Exceptions when changing gesture modes on Android (while app is in background)

    Exceptions when changing gesture modes on Android (while app is in background)

    When the app is open in the background while changing the gesture/navigation bar modes in an Android (11) Emulator, the following exceptions get thrown: (one of the exceptions below doesn't come from the PreloadPageView (0.1.6) package though)

    ======== Exception caught by rendering library =====================================================
    The following ArgumentError was thrown during performLayout():
    Invalid argument(s): 0.0
    
    The relevant error-causing widget was: 
      Viewport Viewport:file:///Users/user/flutter/.pub-cache/hosted/pub.dartlang.org/preload_page_view-0.1.6/lib/preload_page_view.dart:599:18
    When the exception was thrown, this was the stack: 
    #0      double.clamp (dart:core-patch/double.dart:209:7)
    #1      RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1555:75)
    #2      RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20)
    #3      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #4      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #6      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #8      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #10     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #12     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #14     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #16     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
    #17     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1097:7)
    #18     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
    #19     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
    #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #21     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #22     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #23     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #24     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
    #25     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #27     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #29     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #31     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #34     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #38     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #39     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #40     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #41     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #42     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #43     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #44     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #45     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #47     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3422:13)
    #48     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #49     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #51     _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:745:15)
    #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #53     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #55     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #59     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #60     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
    #61     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #62     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #63     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #64     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #65     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #66     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #67     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #68     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #69     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #70     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #73     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3422:13)
    #74     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #75     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
    #76     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
    #77     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
    #78     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #79     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #80     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
    #81     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #82     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #83     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
    #84     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #85     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #86     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #88     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #90     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #91     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
    #92     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
    #93     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
    #94     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #95     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #96     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #97     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #98     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
    #99     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #100    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #101    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
    #102    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #104    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #105    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
    #106    RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
    #107    RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
    #108    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #109    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
    #110    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
    #111    RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
    #112    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
    #113    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
    #114    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
    #115    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
    #116    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
    #117    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
    #118    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
    #119    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
    (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
    The following RenderObject was being processed when the exception was fired: RenderViewport#95020 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    ...  needs compositing
    ...  parentData: <none> (can use size)
    ...  constraints: BoxConstraints(w=0.0, h=0.0)
    ...  size: Size(0.0, 0.0)
    ...  axisDirection: right
    ...  crossAxisDirection: down
    ...  offset: _PagePosition#fe8cd(offset: 0.0, range: null..null, viewport: 0.0, ScrollableState, PageScrollPhysics -> ClampingScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#dfec8, ScrollDirection.idle)
    ...  anchor: 0.0
    RenderObject: RenderViewport#95020 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
      needs compositing
      parentData: <none> (can use size)
      constraints: BoxConstraints(w=0.0, h=0.0)
      size: Size(0.0, 0.0)
      axisDirection: right
      crossAxisDirection: down
      offset: _PagePosition#fe8cd(offset: 0.0, range: null..null, viewport: 0.0, ScrollableState, PageScrollPhysics -> ClampingScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#dfec8, ScrollDirection.idle)
      anchor: 0.0
    ...  center child: _RenderSliverFractionalPadding#b2e75 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    ...    parentData: paintOffset=Offset(0.0, 0.0)
    ...    constraints: MISSING
    ...    geometry: null
    ...    child: RenderSliverFillViewport#14ff7 NEEDS-LAYOUT NEEDS-PAINT
    ...      parentData: paintOffset=Offset(0.0, 0.0)
    ...      constraints: MISSING
    ...      geometry: null
    ...      no children current live
    ====================================================================================================
    I/FIAM.Headless( 7555): went foreground
    I/FIAM.Display( 7555): Binding to activity: MainActivity
    I/FIAM.Headless( 7555): Setting display event component
    
    ======== Exception caught by rendering library =====================================================
    The following assertion was thrown during paint():
    'package:flutter/src/rendering/layer.dart': Failed assertion: line 1667 pos 12: 'value!.storage.every((double component) => component.isFinite)': is not true.
    
    
    Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
    In either case, please report this assertion by filing a bug on GitHub:
      https://github.com/flutter/flutter/issues/new?template=2_bug.md
    
    The relevant error-causing widget was: 
      Transform Transform:file:///Users/user/flutter/.pub-cache/hosted/pub.dartlang.org/wiredash-0.7.0+1/lib/src/capture/capture.dart:184:22
    When the exception was thrown, this was the stack: 
    #2      TransformLayer.transform= (package:flutter/src/rendering/layer.dart:1667:12)
    #3      PaintingContext.pushTransform (package:flutter/src/rendering/object.dart:578:13)
    #4      RenderTransform.paint (package:flutter/src/rendering/proxy_box.dart:2398:27)
    #5      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #6      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #7      RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
    #8      RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
    #9      RenderStack.paint (package:flutter/src/rendering/stack.dart:645:7)
    #10     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #11     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #12     _RenderColoredBox.paint (package:flutter/src/widgets/basic.dart:8143:15)
    #13     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #14     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #15     RenderView.paint (package:flutter/src/rendering/view.dart:209:15)
    #16     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #17     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #18     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #19     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:979:29)
    #20     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
    #21     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
    #22     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
    #23     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
    #24     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
    #25     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
    (elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
    The following RenderObject was being processed when the exception was fired: RenderTransform#3f8e7
    ...  needs compositing
    ...  parentData: not positioned; offset=Offset(0.0, 0.0) (can use size)
    ...  constraints: BoxConstraints(w=0.0, h=0.0)
    ...  size: Size(0.0, 0.0)
    ...  transform matrix: [0] -Infinity,NaN,NaN,0.0
    [1] NaN,-Infinity,NaN,-80.0
    [2] NaN,NaN,-Infinity,0.0
    [3] NaN,NaN,NaN,1.0
    ...  origin: null
    ...  alignment: Alignment.bottomCenter
    ...  textDirection: ltr
    ...  transformHitTests: true
    RenderObject: RenderTransform#3f8e7
      needs compositing
      parentData: not positioned; offset=Offset(0.0, 0.0) (can use size)
      constraints: BoxConstraints(w=0.0, h=0.0)
      size: Size(0.0, 0.0)
      transform matrix: [0] -Infinity,NaN,NaN,0.0
    [1] NaN,-Infinity,NaN,-80.0
    [2] NaN,NaN,-Infinity,0.0
    [3] NaN,NaN,NaN,1.0
      origin: null
      alignment: Alignment.bottomCenter
      textDirection: ltr
      transformHitTests: true
    ...  child: RenderDecoratedBox#e086d NEEDS-PAINT
    ...    needs compositing
    ...    parentData: <none> (can use size)
    ...    constraints: BoxConstraints(w=0.0, h=0.0)
    ...    size: Size(0.0, 0.0)
    ...    decoration: BoxDecoration
    ...      color: Color(0xfff5f6f8)
    ...      border: Border.all(BorderSide(Color(0xffccd2d9), 2.0, BorderStyle.solid))
    ...      borderRadius: BorderRadius.circular(16.0)
    ...    configuration: ImageConfiguration(bundle: PlatformAssetBundle#5d5e9(), devicePixelRatio: 1.0, textDirection: TextDirection.ltr, platform: android)
    ...    child: RenderPadding#501f8 NEEDS-PAINT
    ...      needs compositing
    ...      parentData: <none> (can use size)
    ...      constraints: BoxConstraints(w=0.0, h=0.0)
    ...      size: Size(0.0, 0.0)
    ...      padding: EdgeInsets.all(2.0)
    ...      textDirection: ltr
    ...      child: RenderPositionedBox#a482f NEEDS-PAINT
    ...        needs compositing
    ...        parentData: offset=Offset(2.0, 2.0) (can use size)
    ...        constraints: BoxConstraints(w=0.0, h=0.0)
    ...        size: Size(0.0, 0.0)
    ...        alignment: AlignmentDirectional.centerEnd
    ...        textDirection: ltr
    ...        widthFactor: expand
    ...        heightFactor: expand
    ...        child: RenderConstrainedBox#5bbab NEEDS-PAINT
    ...          needs compositing
    ...          parentData: offset=Offset(0.0, 0.0) (can use size)
    ...          constraints: BoxConstraints(w=0.0, h=0.0)
    ...          size: Size(0.0, 0.0)
    ...          additionalConstraints: BoxConstraints(w=80.0, 0.0<=h<=Infinity)
    ====================================================================================================
    
    ======== Exception caught by rendering library =====================================================
    The following _CastError was thrown during paint():
    Null check operator used on a null value
    
    The relevant error-causing widget was: 
      Viewport Viewport:file:///Users/user/flutter/.pub-cache/hosted/pub.dartlang.org/preload_page_view-0.1.6/lib/preload_page_view.dart:599:18
    When the exception was thrown, this was the stack: 
    #0      RenderViewportBase._paintContents (package:flutter/src/rendering/viewport.dart:659:25)
    #1      RenderViewportBase.paint (package:flutter/src/rendering/viewport.dart:645:7)
    #2      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #3      PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #4      PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #5      PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:206:7)
    #6      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:7)
    #7      RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #8      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #9      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #10     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #11     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #12     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #13     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #14     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #15     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #16     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #17     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #18     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #19     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #20     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #21     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #22     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #23     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #24     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #25     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
    #26     RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:409:5)
    #27     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #28     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #29     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #30     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:553:11)
    #31     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #32     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #33     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #34     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
    #35     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:1941:15)
    #36     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #37     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #38     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #39     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #40     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #41     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #42     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #43     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #44     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #45     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #46     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #47     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #48     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #49     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #50     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #51     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:206:7)
    #52     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:7)
    #53     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #54     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #55     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #56     RenderAnimatedOpacityMixin.paint (package:flutter/src/rendering/proxy_box.dart:1016:17)
    #57     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #58     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #59     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #60     RenderFractionalTranslation.paint (package:flutter/src/rendering/proxy_box.dart:2776:13)
    #61     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #62     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #63     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #64     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #65     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #66     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #67     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:206:7)
    #68     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:7)
    #69     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #70     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #71     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #72     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #73     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #74     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #75     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #76     RenderOffstage.paint (package:flutter/src/rendering/proxy_box.dart:3435:11)
    #77     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #78     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #79     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #80     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #81     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #82     _RenderTheatre.paintStack (package:flutter/src/widgets/overlay.dart:782:15)
    #83     _RenderTheatre.paint (package:flutter/src/widgets/overlay.dart:800:7)
    #84     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #85     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #86     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #87     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #88     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #89     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #90     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #91     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #92     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #93     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #94     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #95     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #96     RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:608:11)
    #97     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #98     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #99     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #100    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #101    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #102    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #103    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #104    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #105    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #106    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #107    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #108    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #109    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #110    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #111    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #112    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #113    PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #114    PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #115    PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:206:7)
    #116    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:7)
    #117    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #118    RenderOffstage.paint (package:flutter/src/rendering/proxy_box.dart:3435:11)
    #119    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #120    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #121    RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
    #122    RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
    #123    RenderStack.paint (package:flutter/src/rendering/stack.dart:645:7)
    #124    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #125    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #126    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #127    RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:608:11)
    #128    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #129    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #130    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #131    PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
    #132    PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:454:7)
    #133    RenderClipRect.paint (package:flutter/src/rendering/proxy_box.dart:1471:23)
    #134    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #135    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #136    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #137    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #138    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #139    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #140    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #141    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #142    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #143    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #144    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #145    RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
    #146    RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
    #147    RenderStack.paint (package:flutter/src/rendering/stack.dart:645:7)
    #148    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #149    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #150    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #151    _RenderInkFeatures.paint (package:flutter/src/material/material.dart:553:11)
    #152    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #153    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #154    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #155    RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:608:11)
    #156    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #157    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #158    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #159    PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
    #160    RenderPhysicalShape.paint (package:flutter/src/rendering/proxy_box.dart:2040:15)
    #161    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #162    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #163    RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #164    RenderTransform.paint (package:flutter/src/rendering/proxy_box.dart:2406:17)
    #165    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #166    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #167    RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
    #168    RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
    #169    RenderStack.paint (package:flutter/src/rendering/stack.dart:645:7)
    #170    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #171    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #172    _RenderColoredBox.paint (package:flutter/src/widgets/basic.dart:8143:15)
    #173    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #174    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
    #175    RenderView.paint (package:flutter/src/rendering/view.dart:209:15)
    #176    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
    #177    PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #178    PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #179    PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:979:29)
    #180    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
    #181    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
    #182    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
    #183    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
    #184    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
    #185    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
    (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
    The following RenderObject was being processed when the exception was fired: RenderViewport#95020
    ...  needs compositing
    ...  parentData: <none> (can use size)
    ...  constraints: BoxConstraints(w=0.0, h=0.0)
    ...  layer: OffsetLayer#70b1a DETACHED
    ...    handles: 1
    ...    offset: Offset(0.0, 0.0)
    ...  size: Size(0.0, 0.0)
    ...  axisDirection: right
    ...  crossAxisDirection: down
    ...  offset: _PagePosition#fe8cd(offset: 0.0, range: null..null, viewport: 0.0, ScrollableState, PageScrollPhysics -> ClampingScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#dfec8, ScrollDirection.idle)
    ...  anchor: 0.0
    RenderObject: RenderViewport#95020
      needs compositing
      parentData: <none> (can use size)
      constraints: BoxConstraints(w=0.0, h=0.0)
      layer: OffsetLayer#70b1a DETACHED
        handles: 1
        offset: Offset(0.0, 0.0)
      size: Size(0.0, 0.0)
      axisDirection: right
      crossAxisDirection: down
      offset: _PagePosition#fe8cd(offset: 0.0, range: null..null, viewport: 0.0, ScrollableState, PageScrollPhysics -> ClampingScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#dfec8, ScrollDirection.idle)
      anchor: 0.0
    ...  center child: _RenderSliverFractionalPadding#b2e75 NEEDS-LAYOUT NEEDS-PAINT
    ...    parentData: paintOffset=Offset(0.0, 0.0)
    ...    constraints: MISSING
    ...    geometry: null
    ...    child: RenderSliverFillViewport#14ff7 NEEDS-LAYOUT NEEDS-PAINT
    ...      parentData: paintOffset=Offset(0.0, 0.0)
    ...      constraints: MISSING
    ...      geometry: null
    ...      no children current live
    ====================================================================================================
    
    opened by TheJulianJES 0
  • update preloadPagesCount does not work

    update preloadPagesCount does not work

    Hi, thanks for building the awesome library.

    I want to update preloadPagesCount dynamically but even after the preloadPagesCount changes and the setState called, the preload is not changed.

    How can I resolve this?

    opened by Hwan-seok 3
Owner
Neil
Hooray!
Neil
A simple Flutter widget to add in the widget tree when you want to show nothing, with minimal impact on performance.

nil A simple widget to add in the widget tree when you want to show nothing, with minimal impact on performance. Why? Sometimes, according to a condit

Romain Rastel 127 Dec 22, 2022
A flutter carousel widget, support infinite scroll, and custom child widget.

carousel_slider A carousel slider widget. Features Infinite scroll Custom child widgets Auto play Supported platforms Flutter Android Flutter iOS Flut

Bart T 1 Nov 25, 2021
A Flutter Widget to make interactive timeline widget.

Bubble Timeline Package A Flutter Widget to make interactive timeline widget. This widget can be used to make Event Timelines, or Timelines for certai

Vansh Goel 12 Sep 22, 2022
📸 Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget.

?? Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget. Photo View is largely used to show interacive images and other stuff such as SVG.

Blue Fire 1.7k Jan 7, 2023
A widget lib that the widget in this lib can react to flutter ScrollController's offset

Language: English | 中文简体 linked_scroll_widgets A lib full of widgets that can react to the scrollController's offset change,to custom your UI effect.

WenJingRui 8 Oct 16, 2022
Full customable rolling switch widget for flutter apps based on Pedro Massango's 'crazy-switch' widget

lite_rolling_switch Full customable rolling switch widget for flutter apps based on Pedro Massango's 'crazy-switch' widget https://github.com/pedromas

Eduardo Muñoz 48 Dec 1, 2022
Progress Dialog widget for flutter projects with ability to customize loading widget, background color and background blur.

DISCONTINUED Checkout ArsDialog ars_progress_dialog Customizable progress dialog for Flutter applications with smooth animation for background dim col

Arsam 8 Apr 15, 2022
A Flutter widget that will give a Glitch Animation Effect to it's child widget.

GlitchEffect A Flutter widget that will give a Glitch Animation Effect to it's child widget. Installation Add the latest version of package to your pu

Sameer Singh 6 Nov 25, 2022
Widget, that can make any static located widget hidable

Installing See the official installing guidline from hidable/install Usage & Overview To start using Hidable widget, we have to create a ScrollControl

Anon 18 Dec 16, 2022
A widget that allow user resize the widget with drag

Flutter-Resizable-Widget A widget that allow user resize the widget with drag Note: this widget uses Getx Example bandicam.2021-11-11.12-34-41-056.mp4

MohammadAminZamani.afshar 22 Dec 13, 2022
Flutter Carousel Pro - A Flutter Carousel widget

Carousel Extended A Flutter Carousel widget. Usage As simple as using any flutter Widget. Based on Carousel Pro but extended to be able to navigate be

omid habibi 3 Dec 7, 2020
🟥 A flutter widget that flashes when flutter fails to render a frame in a certain timeframe

?? A flutter widget that flashes when flutter fails to render a frame in a certain timeframe

Andrei Lesnitsky 32 Oct 8, 2022
React hooks for Flutter. Hooks are a new kind of object that manages a Widget life-cycles. They are used to increase code sharing between widgets and as a complete replacement for StatefulWidget.

English | Português Flutter Hooks A Flutter implementation of React hooks: https://medium.com/@dan_abramov/making-sense-of-react-hooks-fdbde8803889 Ho

Remi Rousselet 2.6k Dec 29, 2022
A credit card widget for Flutter application.

A credit card widget for Flutter application.

Simform Solutions 281 Dec 27, 2022
A simple Flutter widget library that helps us to select days in a week.

A simple Flutter widget library that helps us to select days in a week.

Shan Shaji 4 Oct 9, 2022
Flutter debug helper widget with common and custom actions

Flutter debug helper widget with common and custom actions

Stanislav Ilin 43 Dec 7, 2022
A flutter plugin which provides Crop Widget for cropping images.

A flutter plugin which provides Crop Widget for cropping images.

Chooyan 97 Jan 5, 2023
The Chicago widget set for Flutter

Chicago widget library The Chicago widget set is a retro 32-bit desktop design language for Flutter. It was discussed in the Building a desktop design

Todd Volkert 404 Dec 26, 2022
A draggable Flutter widget that makes implementing a Sliding up and fully-stretchable much easier.

Draggable Home A draggable Flutter widget that makes implementing a Sliding up and fully-stretchable much easier! Based on the Scaffold and Sliver. Us

Devs On Flutter 106 Dec 12, 2022