This repo includes identified Flutter Layouts which anyone can refer as their layout cheat sheet.
A general-purpose widget for building animations.
If your builder function contains a subtree that does not depend on the animation, it's more efficient to build that subtree once instead of rebuilding it on every animation tick.
If you pass the pre-built subtree as the child parameter, the AnimatedBuilder will pass it back to your builder function so that you can incorporate it into your build.
Using this pre-built child is entirely optional, but can improve performance significantly in some cases and is therefore a good practice.
Sample
This code defines a widget called Spinner
that spins a green square continually. It is built with an AnimatedBuilder and makes use of the child feature to avoid having to rebuild the Container each time.
assignment
class Spinner extends StatefulWidget {
@override
_SpinnerState createState() => _SpinnerState();
}
class _SpinnerState extends State<Spinner> with SingleTickerProviderStateMixin {
AnimationController _controller;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 10),
vsync: this,
)..repeat();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _controller,
child: Container(width: 200.0, height: 200.0, color: Colors.green),
builder: (BuildContext context, Widget child) {
return Transform.rotate(
angle: _controller.value * 2.0 * math.pi,
child: child,
);
},
);
}
}
Inheritance
- Object
- Diagnosticable
- DiagnosticableTree
- Widget
- StatefulWidget
- AnimatedWidget
- AnimatedBuilder
AnimatedBuilder({Key key, @required Listenable animation, @required TransitionBuilder builder, Widget child })
Creates an animated builder. [...]
const
Called every time the animation changes value.
final
The child widget to pass to the builder. [...]
final
The hash code for this object. [...]
read-only, inherited
Controls how one widget replaces another widget in the tree. [...]
final, inherited
The Listenable to which this widget is listening. [...]
final, inherited
A representation of the runtime type of the object.
read-only, inherited
build(BuildContext context) → Widget
Override this method to build widgets that depend on the state of the listenable (e.g., the current value of the animation).
override
createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
createState() → _AnimatedState
Subclasses typically do not override this method.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
toDiagnosticsNode({String name, DiagnosticsTreeStyle style }) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep. [...]
inherited
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a string representation of this object.
inherited
toStringDeep({String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a string representation of this node and its descendants. [...]
inherited
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a one-line detailed description of the object. [...]
inherited
toStringShort() → String
A short, textual description of this widget.
inherited
operator ==(dynamic other) → bool
The equality operator. [...]
inherited
- CONSTRUCTORS
- AnimatedBuilder
- PROPERTIES
- builder
- child
- hashCode
- key
- listenable
- runtimeType
- METHODS
- build
- createElement
- createState
- debugDescribeChildren
- debugFillProperties
- noSuchMethod
- toDiagnosticsNode
- toString
- toStringDeep
- toStringShallow
- toStringShort
- OPERATORS
- operator ==
Flutter 1.9.1+hotfix.5 •