A widget that attempts to size the child to a specific aspect ratio.
The widget first tries the largest width permited by the layout constraints. The height of the widget is determined by applying the given aspect ratio to the width, expressed as a ratio of width to height.
For example, a 16:9 width:height aspect ratio would have a value of 16.0/9.0. If the maximum width is infinite, the initial width is determined by applying the aspect ratio to the maximum height.
Now consider a second example, this time with an aspect ratio of 2.0 and layout constraints that require the width to be between 0.0 and 100.0 and the height to be between 0.0 and 100.0. We'll select a width of 100.0 (the biggest allowed) and a height of 50.0 (to match the aspect ratio).
In that same situation, if the aspect ratio is 0.5, we'll also select a width of 100.0 (still the biggest allowed) and we'll attempt to use a height of 200.0. Unfortunately, that violates the constraints because the child can be at most 100.0 pixels tall. The widget will then take that value and apply the aspect ratio again to obtain a width of 50.0. That width is permitted by the constraints and the child receives a width of 50.0 and a height of 100.0. If the width were not permitted, the widget would continue iterating through the constraints. If the widget does not find a feasible size after consulting each constraint, the widget will eventually select a size for the child that meets the layout constraints but fails to meet the aspect ratio constraints.
- Inheritance
- Object
- Widget
- RenderObjectWidget
- SingleChildRenderObjectWidget
- AspectRatio
Constructors
- AspectRatio({Key key, @required double aspectRatio, Widget child })
-
Creates a widget with a specific aspect ratio.
Properties
- aspectRatio → double
-
The aspect ratio to attempt to use.
read-only - child → Widget
-
The widget below this widget in the tree.
read-only, inherited - hashCode → int
-
Get a hash code for this object.
read-only, inherited - key → Key
-
Controls how one widget replaces another widget in the tree.
read-only, inherited - runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Operators
-
operator ==(
other) → bool -
The equality operator.
inherited
Methods
-
createRenderObject(
BuildContext context) → RenderAspectRatio -
Creates an instance of the
RenderObject
class that thisRenderObjectWidget
represents, using the configuration described by thisRenderObjectWidget
. -
debugFillDescription(
List<String> description) → void -
Add additional information to the given description for use by
toString
. -
updateRenderObject(
BuildContext context, RenderAspectRatio renderObject) → void -
Copies the configuration described by this
RenderObjectWidget
to the givenRenderObject
, which will be of the same type as returned by this object'screateRenderObject
. -
createElement(
) → SingleChildRenderObjectElement -
RenderObjectWidgets always inflate to a
RenderObjectElement
subclass.inherited -
didUnmountRenderObject(
RenderObject renderObject) → void -
A render object previously associated with this widget has been removed from the tree. The given RenderObject will be of the same type as returned by this object's createRenderObject.
inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited -
toString(
) → String -
Returns a string representation of this object.
inherited -
toStringShort(
) → String -
A short, textual description of this widget.
inherited