Created
June 16, 2020 08:23
-
-
Save JustinSDK/7da863a830d2db9825c815d48943f1c6 to your computer and use it in GitHub Desktop.
RenderObjectWidget Demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp( | |
RedSquare( | |
center: Offset(210, 300), | |
width: 100, | |
height: 200, | |
) | |
); | |
class RedSquare extends LeafRenderObjectWidget { | |
Offset center; | |
double width; | |
double height; | |
RedSquare({this.center, this.width, this.height}); | |
@override | |
RenderObject createRenderObject(BuildContext context) { | |
return RedSquareRenderObject( | |
rect: Rect.fromCenter( | |
center: center, | |
width: width, | |
height: height | |
) | |
); | |
} | |
// @override | |
// void updateRenderObject(BuildContext context, RedSquareRenderObject renderObject) { | |
// renderObject | |
// ..rect = Rect.fromCenter( | |
// center: center, | |
// width: width, | |
// height: height | |
// ); | |
// } | |
} | |
class RedSquareRenderObject extends RenderBox { | |
Rect _rect; | |
RedSquareRenderObject({Rect rect}) { | |
this._rect = rect; | |
} | |
// set rect(Rect rect) { | |
// if (_rect == rect) { | |
// return; | |
// } | |
// _rect = rect; | |
// markNeedsPaint(); | |
// } | |
@override | |
void paint(PaintingContext context, Offset offset) { | |
Paint p = Paint() | |
..color = Colors.red; | |
context.canvas.drawRect(_rect , p); | |
} | |
@override | |
bool get sizedByParent => true; | |
@override | |
void performResize() { | |
size = constraints.smallest; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment