[Solved] Flutter – Is there any way to change variable value without using setState() or notifyListeners()


use stream.it is like a pipe you add value from a side (Sink) and recieve it on the other side (Stream).i will try to explain it:

  //make a stream controller
  StreamController<bool> valueController = StreamController();
  
  //this will listen to every new value you add
  Stream valueOutput = valueController.stream;

  //you can add new values throw the sink
   Sink valueInput = valueController.sink;

so when you want to add a value to the stream just call

valueInput.add(true);//add whatever booleon value you want

and then recieve it by calling

 valueOutput.listen((value) {
   //this function will be invoked every time you add a new value.
 });

or you can add StreamBuilder if you want to rebuild a specific widget based on that boolean value

StreamBuilder(
      stream: valueOutput,
      builder: (context,snapshot) {

       bool value = snapshot.data;
       log(value.toString());//true or false

       return yourWidget();
    })

i hope i explained it well, good luck with your problem.

i think when you use setState it rebuilds the entire screen and if you are using scroll controller to listen to user`s scroll then the screen will rebuild every pixel user scrolls so that is a lot of rendering.
maybe share some code snippet of your code so we can help.

1

solved Flutter – Is there any way to change variable value without using setState() or notifyListeners()