Separate floor and ceiling into widgets with painters

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-09-13 17:19:29 +02:00
parent 53f1f2004e
commit 2e6f3b047c
+34 -14
View File
@@ -557,27 +557,33 @@ class Background extends StatelessWidget {
super.key, super.key,
}); });
@override
Widget build(BuildContext context) {
return const Stack(
textDirection: TextDirection.ltr,
children: [
Ceiling(),
Floor(),
],
);
}
}
class Ceiling extends StatelessWidget {
const new({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return LayoutBuilder( return LayoutBuilder(
builder: (context, constraints) => Stack( builder: (context, constraints) => CustomPaint(
textDirection: TextDirection.ltr, size: constraints.biggest,
children: [ painter: CeilingPainter(),
CustomPaint(
size: constraints.biggest,
painter: Ceiling(),
),
CustomPaint(
size: constraints.biggest,
painter: Floor(),
),
],
), ),
); );
} }
} }
class Ceiling extends CustomPainter { class CeilingPainter extends CustomPainter {
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
final Rect rect = Offset.zero & size; final Rect rect = Offset.zero & size;
@@ -610,7 +616,21 @@ class Ceiling extends CustomPainter {
bool shouldRebuildSemantics(covariant oldDelegate) => false; bool shouldRebuildSemantics(covariant oldDelegate) => false;
} }
class Floor extends CustomPainter { class Floor extends StatelessWidget {
const new({super.key});
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) => CustomPaint(
size: constraints.biggest,
painter: FloorPainter(),
),
);
}
}
class FloorPainter extends CustomPainter {
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
final Rect rect = Offset.zero & size; final Rect rect = Offset.zero & size;