Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exception has occurred. Bad state: Future already completed in flutter listview and Video player

Tags:

flutter

dart

I am getting a video url I have stored from my CloudFirestore DB and displaying network videos in a listView.buiilder(). enter image description here when I set

autiInitialize = true

or try to initialize the video in any other way I get Error

Exception has occurred.
Bad state: Future already completed

and

I/flutter ( 6187): ══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
I/flutter ( 6187): The following assertion was thrown while dispatching notifications for VideoPlayerController: 
I/flutter ( 6187): setState() or markNeedsBuild() called during build.
I/flutter ( 6187): This MaterialControls widget cannot be marked as needing to build because the framework is already
I/flutter ( 6187): in the process of building widgets. A widget can be marked as needing to be built during the build
I/flutter ( 6187): phase only if one of its ancestors is currently building. This exception is allowed because the
I/flutter ( 6187): framework builds parent widgets before children, which means a dirty descendant will always be
I/flutter ( 6187): built. Otherwise, the framework might not visit this widget during this build phase.
I/flutter ( 6187): The widget on which setState() or markNeedsBuild() was called was:
I/flutter ( 6187):   MaterialControls(state: _MaterialControlsState#47383)

part of my code

VideoPlayerController  retcontroller(String varainatVideo){
    if(playercontroller == null){
      playercontroller = VideoPlayerController.network(varainatVideo);
    }
    return playercontroller;
  }


   Chewie(
  retcontroller(${snapshotDocuments[index].data['videos']}),
 autoInitialize: true,
cupertinoProgressColors: ChewieProgressColors(),
showControls:false,
 ),
like image 618
Norbert Avatar asked Oct 24 '25 00:10

Norbert


1 Answers

Looks like you're trying to change the state during the UI build, be sure you're not using setState(...) in ListView.builder(...)

Take this as an example.

like image 134
Chung Wei Leong Avatar answered Oct 26 '25 18:10

Chung Wei Leong



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!