问题
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