Last active
November 21, 2021 07:35
-
-
Save JasperEssien2/c2bc4fad837939179989e5aeef41fa0d to your computer and use it in GitHub Desktop.
Starter code for ShirtWidget
This file contains 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'; | |
import 'package:flutter/rendering.dart'; | |
class ShirtWidget extends LeafRenderObjectWidget { | |
final Color color; | |
const ShirtWidget({ | |
Key? key, | |
required this.color, | |
}) : super(key: key); | |
@override | |
RenderObject createRenderObject(BuildContext context) { | |
return _ShirtRenderBox(color: color); | |
} | |
@override | |
void updateRenderObject( | |
BuildContext context, covariant _ShirtRenderBox renderObject) { | |
renderObject.color = color; | |
} | |
} | |
class _ShirtRenderBox extends RenderBox { | |
Color _color; | |
Color get color => _color; | |
set color(Color value) { | |
if (value == color) return; | |
_color = color; | |
markNeedsPaint(); | |
} | |
_ShirtRenderBox({required Color color}) : _color = color; | |
@override | |
bool get sizedByParent => true; | |
@override | |
void paint(PaintingContext context, Offset offset) { | |
final canvas = context.canvas; | |
// DRAWiNG THE BACKGROUND | |
canvas.drawRect(offset & size, Paint()..color = color); | |
} | |
@override | |
Size computeDryLayout(BoxConstraints constraints) { | |
return Size(constraints.maxWidth, constraints.maxHeight); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment