flutter_constraintlayout library
Classes
- Anchor
- Barrier
- BarrierDefine
- Constrained
- Each child element needs to be wrapped with Constrained to declare constraint information
- ConstrainedNode
- All child elements and helper widgets will be converted to ConstrainedNode before layout
- Constraint
- ConstraintAlign
- ConstraintBoxData
- ConstraintDefine
- ConstraintId
- Each child element can be set with an id so that they can be referenced by other child elements. If not set, other child elements can be referenced by relative id. But once an id is defined, it cannot be referenced using a relative id.
- ConstraintLayout
- A super powerful Stack, build flexible layouts with constraints. Similar to ConstraintLayout for Android and AutoLayout for iOS. But the code implementation is much more efficient, it has O(n) layout time complexity and no linear equation solving is required.
- ConstraintLayoutController
- Guideline
- GuidelineDefine
- IndexConstraintId
- A relative id type that refers to a child element by its index
- MultiChildWidgetContext
- Provide open grammar
- OffBuildWidget
- For performance optimization
- PinnedInfo
- PinnedTranslate
- Has no effect in pinned position layout mode. You can use it to do the rotation of child elements.
- RelativeConstraintId
- A relative id type that is referenced by index offsets between child elements
- UnConstrained
- For constraints and widgets separation
Enums
- AnchorType
- For pinned position and translate
- BarrierDirection
- CLVisibility
- ConstraintAlignType
- PercentageAnchor
- For percentage layout
Extensions
- ConstrainedWidgetExt on Widget
- For easy use
- ConstraintLayoutExt on MultiChildRenderObjectWidget
- Provide open grammar
- MultiChildWidgetChildExt on Widget
- Provide open grammar
Constants
- gone → const CLVisibility
- invisible → const CLVisibility
- matchConstraint → const double
- matchParent → const double
- visible → const CLVisibility
- wrapContent → const double
Properties
- parent → ConstraintId
-
final
Functions
-
cId(
String id) → ConstraintId -
circleTranslate(
{required double radius, required double angle}) → Offset - For circle position
-
constraintGrid(
{required ConstraintId id, required ConstraintAlign left, required ConstraintAlign top, required int itemCount, required int columnCount, double? itemWidth, double? itemHeight, double? itemSize, Size itemSizeBuilder(int index, int rowIndex, int columnIndex)?, required Widget itemBuilder(int index, int rowIndex, int columnIndex), EdgeInsets itemMarginBuilder(int index, int rowIndex, int columnIndex)?, int itemSpanBuilder(int index)?, EdgeInsets margin = EdgeInsets.zero, CLVisibility visibility = visible, Offset translate = Offset.zero, bool translateConstraint = false, int? zIndex}) → List< Widget> - For list、grid、staggered grid
-
rId(
int childIndex) → ConstraintId -
sId(
int siblingIndexOffset) → ConstraintId
Typedefs
-
CalcOffsetCallback
= Offset Function(RenderBox parent, ConstrainedNode self, List<
ConstrainedNode> anchors) -
CalcSizeCallback
= BoxConstraints Function(RenderBox parent, List<
ConstrainedNode> anchors) - OnLayoutCallback = void Function(RenderBox renderBox, Rect rect)
- OnPaintCallback = void Function(RenderBox renderBox, Offset offset, Size size, Offset? anchorPoint, double? angle)