reset_baseline.dart
985 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
class ResetBaseline extends SingleChildRenderObjectWidget {
final double height;
const ResetBaseline({
Key? key,
required this.height,
required Widget child,
}) : super(key: key, child: child);
@override
RenderResetBaseline createRenderObject(BuildContext context) =>
RenderResetBaseline(height: height);
@override
void updateRenderObject(
BuildContext context, RenderResetBaseline renderObject) =>
renderObject..height = height;
}
class RenderResetBaseline extends RenderProxyBox {
RenderResetBaseline({required double height, RenderBox? child})
: _height = height,
super(child);
double get height => _height;
double _height;
set height(double value) {
if (_height != value) {
_height = value;
markNeedsLayout();
}
}
@override
double computeDistanceToActualBaseline(TextBaseline baseline) => height;
}