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