StreamProvider<T> class

Listens to a Stream and exposes its content to child and descendants.

Its main use-case is to provide to a large number of a widget the content of a Stream, without caring about reacting to events. A typical example would be to expose the battery level, or a Firebase query.

Trying to use Stream to replace ChangeNotifier is outside of the scope of this class.

It is considered an error to pass a stream that can emit errors without providing a catchError method.

initialData determines the value exposed until the Stream emits a value.

By default, StreamProvider considers that the Stream listened uses immutable data. As such, it will not rebuild dependents if the previous and the new value are ==. To change this behavior, pass a custom updateShouldNotify.

See also:

Inheritance
Implemented types
Available extensions

Constructors

StreamProvider({Key? key, required Create<Stream<T>?> create, required T initialData, ErrorBuilder<T>? catchError, UpdateShouldNotify<T>? updateShouldNotify, bool? lazy, TransitionBuilder? builder, Widget? child})
Creates a Stream using create and subscribes to it.
StreamProvider.value({Key? key, required Stream<T>? value, required T initialData, ErrorBuilder<T>? catchError, UpdateShouldNotify<T>? updateShouldNotify, bool? lazy, TransitionBuilder? builder, Widget? child})
Listens to value and expose it to all of StreamProvider descendants.

Properties

builder → TransitionBuilder?
Syntax sugar for obtaining a BuildContext that can read the provider created.
finalinherited
elHorizontalScroll → Widget

Available on Widget, provided by the ElWidgetExt extension

监听鼠标水平滚动(仅限桌面端生效),其后代滚动小部件必须在 widget 层指定 ScrollController
no setter
hashCode → int
The hash code for this object.
no setterinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
inherited
buildWithChild(BuildContext context, Widget? child) → Widget
A build method that receives an extra child parameter.
inherited
createElement() → _InheritedProviderElement<T>
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
elScrollbarBehavior(BuildContext context, ElScrollBehavior behavior) → Widget

Available on Widget, provided by the ElWidgetExt extension

合并祖先 ElScrollBehavior 的默认配置,如果不需要尊重祖先配置, 请直接使用 ScrollConfiguration 覆盖即可
noScrollbarBehavior(BuildContext context, {Key? key, bool? overscroll, Set<PointerDeviceKind>? dragDevices, MultitouchDragStrategy? multitouchDragStrategy, Set<LogicalKeyboardKey>? pointerAxisModifiers, ScrollPhysics? physics, TargetPlatform? platform, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, bool enabled = true}) → Widget

Available on Widget, provided by the ElWidgetExt extension

不使用祖先提供的默认滚动条,当使用自定义滚动条时请设置此扩展,可以防止与祖先提供的默认滚动条重叠
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent 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.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → 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

Operators

operator ==(Object other) → bool
The equality operator.
inherited