title: Calling a function on an event from another class Flutter
body: <p>I've been having this problem with Flutter and I don't know how to handle it. I was trying to go through some of the tutorials and then I wanted to do this.</p>
  
  <p>What I want to do is to call from the FloatingActionButton on the <code>onPresssed</code> event <code>._increment</code>, so that I can increment the <code>_counter</code>. But then I get that error.
  What am I missing?</p>
  
  <pre><code>void main() {
    runApp(MaterialApp(
      title: 'Flutter Tutorial',
      home: TutorialHome(),
    ));
  }
  
  class TutorialHome extends StatelessWidget {
  
  
    @override
    Widget build(BuildContext context) {
      // Scaffold is a layout for the major Material Components.
      SystemChrome.setEnabledSystemUIOverlays([]); //Hide Status Bar
      return Scaffold(
        appBar: AppBar(
          leading: IconButton(
            icon: Icon(Icons.menu),
            tooltip: 'Navigation menu',
            onPressed: null,
          ),
          title: Text('Example title'),
          actions: &lt;Widget&gt;[
            IconButton(
              icon: Icon(Icons.search),
              tooltip: 'Search',
              onPressed: null,
            ),
          ],
        ),
        // body is the majority of the screen.
        body: Center(
          child: Container(
            height: 100,
            width: 100,
            child: Column(
              children: &lt;Widget&gt;[
                Counter(),
              ]
            )
          )
        ),
        floatingActionButton: FloatingActionButton(
          tooltip: 'Add', // used by assistive technologies
          child: Icon(Icons.add),
          onPressed: _CounterState()._increment,
        ),
      );
    }
  }
  
  
  //class CounterIncrementor extends StatelessWidget {
  //  CounterIncrementor({this.onPressed});
  //
  //  final VoidCallback onPressed;
  //
  //  @override
  //  Widget build(BuildContext context) {
  //    return RaisedButton(
  //      onPressed: onPressed,
  //      child: Text('Increment'),
  //    );
  //  }
  //}
  
  class Counter extends StatefulWidget {
    // This class is the configuration for the state. It holds the
    // values (in this case nothing) provided by the parent and used by the build
    // method of the State. Fields in a Widget subclass are always marked "final".
  
    @override
    _CounterState createState() =&gt; _CounterState();
  }
  
  class _CounterState extends State&lt;Counter&gt; {
    int _counter = 0;
  
    void _increment() {
      setState(() {
        // This call to setState tells the Flutter framework that
        // something has changed in this State, which causes it to rerun
        // the build method below so that the display can reflect the
        // updated values. If we changed _counter without calling
        // setState(), then the build method would not be called again,
        // and so nothing would appear to happen.
        print("Increasing counter value\n");
        _counter++;
      });
    }
  
    @override
    Widget build(BuildContext context) {
      // This method is rerun every time setState is called, for instance
      // as done by the _increment method above.
      // The Flutter framework has been optimized to make rerunning
      // build methods fast so that you can just rebuild anything that
      // needs updating rather than having to individually change
      // instances of widgets.
      return Column(
        children: &lt;Widget&gt;[
          RaisedButton(
            onPressed: _increment,
            child: Text('Increment'),
          ),
          Text('Count: $_counter'),
        ],
      );
    }
  }
  </code></pre>
  
  <p>This is the error:</p>
  
  <pre><code> ************************ ERROR *************************
  ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
  I/flutter (20840): The following assertion was thrown while handling a gesture:
  I/flutter (20840): setState() called in constructor: _CounterState#452ba(lifecycle state: created, no widget, not
  I/flutter (20840): mounted)
  I/flutter (20840): This happens when you call setState() on a State object for a widget that hasn't been inserted into
  I/flutter (20840): the widget tree yet. It is not necessary to call setState() in the constructor since the state is
  I/flutter (20840): already assumed to be dirty when it is initially created.
  </code></pre>