How to set height,width and color for RenderBox in flutter?

╄→гoц情女王★ 提交于 2021-01-29 05:17:59

问题


I have created canvas using RenderBox.


class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return  Scaffold(
      appBar:  AppBar(),
      body:  Column(
        children: <Widget>[
           Container(color:Colors.yellow,height:50,child: Center(child: Text("Canvas"))),
           Expanded(
            child:  PageView(
              children: <Widget>[
                 Container(
                  color: Colors.red,
                  child:  CanvasWidget(),
                ),
                 Container(
                  //color: Colors.green,
                  child:  CanvasWidget(),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

class CanvasWidget extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => new _CanvasWidgetState();
}

class _CanvasWidgetState extends State<CanvasWidget> {
  @override
  Widget build(BuildContext context) => new CanvasObjectWidget();
}

class CanvasObjectWidget extends LeafRenderObjectWidget {
  @override
  RenderObject createRenderObject(BuildContext context) => new CanvasRenderBox();
}

class CanvasRenderBox extends RenderBox {
  
  @override
  bool get sizedByParent => true;

  @override
  paint(PaintingContext context, Offset offset) {
    final Canvas canvas = context.canvas;
    final Paint paintBorder = new Paint()
      ..strokeWidth =10.0
      ..style = PaintingStyle.stroke
      ..color = Colors.blue.withAlpha(128);
    canvas.drawRect(offset & size, paintBorder);
  }
}

I want to set height,width and color for my CanvasWidget. But it takes container height, width, color. I need to know how to set height, width, color for canvas and want to use that canvasWidget without Container and its property. Please help me to do it.

来源:https://stackoverflow.com/questions/63074083/how-to-set-height-width-and-color-for-renderbox-in-flutter

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!