Serge Breusov
Serge Breusov

Reputation: 1386

Flutter - How to create widget that display RenderBox component?

RenderBox gives the opportunity to overide paint() method. But how to build() Widget from that RenderBox?

Upvotes: 4

Views: 3094

Answers (1)

Rémi Rousselet
Rémi Rousselet

Reputation: 277167

Instead of StatefulWidget or StatelessWidget you can subclass SingleChildRenderObjectWidget (or similar)

class MyWidget extends SingleChildRenderObjectWidget {
  @override
  MyRenderBox createRenderObject(BuildContext context) {
    return new MyRenderBox(title: "bar");
  }

  @override
  void updateRenderObject(BuildContext context, MyRenderBox renderObject) {
    renderObject.title = "foo";
  }
}

class MyRenderBox extends RenderBox {
  String title;

  MyRenderBox({this.title});
}

A few other interesting subclasses are LeafRenderObjectWidget and MultiChildRenderObjectWidget

Upvotes: 4

Related Questions