mirror of
https://github.com/rive-app/rive-flutter.git
synced 2025-06-26 01:18:13 +08:00
Adding support for intrinsic size.
This commit is contained in:
@ -24,6 +24,8 @@ class Rive extends LeafRenderObjectWidget {
|
||||
..artboard = artboard
|
||||
..fit = fit
|
||||
..alignment = alignment
|
||||
..intrinsicSize =
|
||||
artboard == null ? Size.zero : Size(artboard.width, artboard.height)
|
||||
..useIntrinsicSize = useIntrinsicSize;
|
||||
}
|
||||
|
||||
@ -34,6 +36,8 @@ class Rive extends LeafRenderObjectWidget {
|
||||
..artboard = artboard
|
||||
..fit = fit
|
||||
..alignment = alignment
|
||||
..intrinsicSize =
|
||||
artboard == null ? Size.zero : Size(artboard.width, artboard.height)
|
||||
..useIntrinsicSize = useIntrinsicSize;
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,12 @@ abstract class RiveRenderBox extends RenderBox {
|
||||
Alignment _alignment;
|
||||
bool _useIntrinsicSize = false;
|
||||
|
||||
@override
|
||||
Size computeDryLayout(BoxConstraints constraints) {
|
||||
return constraints
|
||||
.constrainSizeAndAttemptToPreserveAspectRatio(_intrinsicSize);
|
||||
}
|
||||
|
||||
bool get useIntrinsicSize => _useIntrinsicSize;
|
||||
set useIntrinsicSize(bool value) {
|
||||
if (_useIntrinsicSize == value) {
|
||||
@ -66,7 +72,10 @@ abstract class RiveRenderBox extends RenderBox {
|
||||
|
||||
@override
|
||||
void performResize() {
|
||||
size = _useIntrinsicSize ? constraints.smallest : constraints.biggest;
|
||||
if (_useIntrinsicSize) {
|
||||
super.performResize();
|
||||
}
|
||||
size = constraints.biggest;
|
||||
}
|
||||
|
||||
@override
|
||||
|
Reference in New Issue
Block a user