Skip to content

Instantly share code, notes, and snippets.

@JustinSDK
Created June 16, 2020 08:23
Show Gist options
  • Save JustinSDK/7da863a830d2db9825c815d48943f1c6 to your computer and use it in GitHub Desktop.
Save JustinSDK/7da863a830d2db9825c815d48943f1c6 to your computer and use it in GitHub Desktop.
RenderObjectWidget Demo
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