valueListenablebuilderchild createStatevalue initStatedidUpdateWidgetdispose _valueChangedbuildValueWidgetBuilderValueListenableBuilder_ValueListenableBuilderStateWidgetValueListenable BuildContextTScaffoldAnimatedBuilder ListenableNotificationListener Notification StreamBuilderStreamTweenAnimationBuilderTweenStatefulWidgetStringTextoverrideStatevoid initStatewidgetvalueListenablevalue addListenerdidUpdateWidgetremoveListenerdisposesetStatebuilderchildStatefulWidgetStateE ~õv+ŒKÁ­vÖØÍpackage:flutter/foundation.dartøframework.dart‹•€<€†€¤€¥€Ö 'Tp“ÂËÌö÷‚‚‚^‚b‚¯‚ýƒCƒGƒUƒYƒ¨ƒÒ„1„2„t„x„Ã……c……ƒ…Æ…Ê…ë…ï†=†‹†Æ†Ê‡‡[‡Œ‡‡Õˆ#ˆ'ˆ;ˆ‰ˆÅˆÉ‰1‰A‰E‰S‰W‰¢‰éŠ7ІЭŠú‹2‹‚‹’‹Ë‹õ‹ûŒKŒŒ±ŒÀŒãŒþ^d°õŽ!Ž"ŽfŽ‡ŽŽØ?@”šë5‚Ñó‘ ‘ ‘‘c‘e‘f‘·‘Ǒȑԑ钒*’a’e’f’r’°’Ö““T“€“¹“¿“ÓēГã””2”6”7”P”Œ””‘””Ä”ý••/// @docImport 'package:flutter/animation.dart'; /// @docImport 'package:flutter/material.dart'; /// /// @docImport 'async.dart'; /// @docImport 'notification_listener.dart'; /// @docImport 'text.dart'; /// @docImport 'transitions.dart'; /// @docImport 'tween_animation_builder.dart';Ì÷„22‹˜‡_/// A widget whose content stays synced with a [ValueListenable]. /// /// Given a [ValueListenable] and a [builder] which builds widgets from /// concrete values of `T`, this class will automatically register itself as a /// listener of the [ValueListenable] and call the [builder] with updated values /// when the value changes. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=s-ZG-jS5QHQ} /// /// ## Performance optimizations /// /// If your [builder] function contains a subtree that does not depend on the /// value of the [ValueListenable], 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 /// [ValueListenableBuilder] 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. /// /// {@tool dartpad} /// This sample shows how you could use a [ValueListenableBuilder] instead of /// setting state on the whole [Scaffold] in a counter app. /// /// ** See code in examples/api/lib/widgets/value_listenable_builder/value_listenable_builder.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedBuilder], which also triggers rebuilds from a [Listenable] /// without passing back a specific value from a [ValueListenable]. /// * [NotificationListener], which lets you rebuild based on [Notification] /// coming from its descendant widgets rather than a [ValueListenable] that /// you have a direct reference to. /// * [StreamBuilder], where a builder can depend on a [Stream] rather than /// a [ValueListenable] for more advanced use cases. /// * [TweenAnimationBuilder], which can animate values in a widget based on a /// [Tween].‹¯‹¯‹ÍFŒ˜Œ®€¼/// Creates a [ValueListenableBuilder]. /// /// The [child] is optional but is good practice to use if part of the widget /// subtree does not depend on the value of the [valueListenable].Œµ Œ¼ŒÄŒÓŒçŒö Ž€×/// The [ValueListenable] whose value you depend on in order to build. /// /// This widget does not ensure that the [ValueListenable]'s value is not /// null, therefore your [builder] may need to handle null values.Ž$6€ë/// A [ValueWidgetBuilder] which builds a widget depending on the /// [valueListenable]'s value. /// /// Can incorporate a [valueListenable] value-independent widget subtree /// from the [child] parameter into the returned widget tree.BÆ‘¤/// A [valueListenable]-independent widget which is passed back to the [builder]. /// /// This argument is optional and can be null if the entire widget subtree the /// [builder] builds depends on the value of the [valueListenable]. For /// example, in the case where the [valueListenable] is a [String] and the /// [builder] returns a [Text] widget with the current [String] value, there /// would be no useful [child].‘ U‘/‘ ‘‘fƒœ‘l‘‰‘‰‘¹ ‘À‘Ê€š‘Û‘ʑ˒hZ’y’‰#’¤’h’i“Æo“דƓǔ9V”>”“m”¦”¬”º”“””‚‚ƒÚÀ/// Builds a [Widget] when given a concrete value of a [ValueListenable]. /// /// If the `child` parameter provided to the [ValueListenableBuilder] is not /// null, the same `child` widget is passed back to this [ValueWidgetBuilder] /// and should typically be incorporated in the returned widget tree. /// /// See also: /// /// * [ValueListenableBuilder], a widget which invokes this builder each time /// a [ValueListenable] changes value.ƒíƒí„„„„„! „*€®package:flutter/animation.dart€ßpackage:flutter/material.dart async.dart0notification_listener.dart] text.dartytransitions.dartœtween_animation_builder.dart€<€†€¤€¥€Ö 'Tp“ÂËÌö÷‚‚‚^‚b‚¯‚ýƒCƒGƒUƒYƒ¨ƒÒ„1„2„t„x„Ã……c……ƒ…Æ…Ê…ë…ï†=†‹†Æ†Ê‡‡[‡Œ‡‡Õˆ#ˆ'ˆ;ˆ‰ˆÅˆÉ‰1‰A‰E‰S‰W‰¢‰éŠ7ІЭŠú‹2‹‚‹’‹Ë‹õ‹ûŒKŒŒ±ŒÀŒãŒþ^d°õŽ!Ž"ŽfŽ‡ŽŽØ?@”šë5‚Ñó‘ ‘ ‘‘c‘e‘f‘·‘Ǒȑԑ钒*’a’e’f’r’°’Ö““T“€“¹“¿“ÓēГã””2”6”7”P”Œ””‘””Ä”ý••ValueListenableBuilder_ValueListenableBuilderState@¢