66 lines
1.4 KiB
Dart
66 lines
1.4 KiB
Dart
import 'dart:ui';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import '../components/coordinate_pro.dart';
|
|
/// create by 张风捷特烈 on 2020-03-19
|
|
/// contact me by email 1981462002@qq.com
|
|
/// 说明: 纸
|
|
|
|
class Paper extends StatelessWidget {
|
|
const Paper({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Center(child: _buildChild());
|
|
}
|
|
|
|
Widget _buildChild() {
|
|
final Widget just = CustomPaint(
|
|
painter: BgPainter(), // 背景
|
|
);
|
|
|
|
final Widget withSize = CustomPaint(
|
|
size: Size(100,100),
|
|
painter: BgPainter(), // 背景
|
|
);
|
|
|
|
|
|
final Widget withLayoutBuilder = LayoutBuilder(
|
|
builder: _builderByLayout,
|
|
);
|
|
|
|
|
|
final Widget withChild = CustomPaint(
|
|
painter: BgPainter(),
|
|
child: Container(
|
|
width: 100,
|
|
height: 100,
|
|
), // 背景
|
|
);
|
|
|
|
return withChild;
|
|
}
|
|
|
|
Widget _builderByLayout(BuildContext context, BoxConstraints constraints) {
|
|
return CustomPaint(
|
|
size: Size(constraints.maxWidth, constraints.maxHeight),
|
|
painter: BgPainter(), // 背景
|
|
);
|
|
}
|
|
}
|
|
|
|
class BgPainter extends CustomPainter {
|
|
@override
|
|
void paint(Canvas canvas, Size size) {
|
|
canvas.clipRect(Offset.zero&size);
|
|
|
|
canvas.drawRect(
|
|
Rect.fromPoints(Offset.zero, Offset(size.width, size.height)),
|
|
Paint()..color = Colors.red);
|
|
}
|
|
|
|
@override
|
|
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
|
|
}
|
|
|