<itemvalue="A sliver that contains a single box widget. Slivers are special-purpose widgets that can be combined using a [CustomScrollView] to create custom scroll effects. A [SliverToBoxAdapter] is a basic sliver that creates a bridge back to one of the usual box-based widgets. Rather than using multiple [SliverToBoxAdapter] widgets to display multiple box widgets in a [CustomScrollView], consider using [SliverList], [SliverFixedExtentList], [SliverPrototypeExtentList], or [SliverGrid], which are more efficient because they instantiate only those children that are actually visible through the scroll view's viewport."/>
<itemvalue="A material design app bar that integrates with a [CustomScrollView]. An app bar consists of a toolbar and potentially other widgets, such as a [TabBar] and a [FlexibleSpaceBar]. App bars typically expose one or more common actions with [IconButton]s which are optionally followed by a [PopupMenuButton] for less common operations. {@youtube 560 315 https:www.youtube.comwatch?v=R9C5KMJKluE} Sliver app bars are typically used as the first child of a [CustomScrollView], which lets the app bar integrate with the scroll view so that it can vary in height according to the scroll offset or float above the other content in the scroll view. For a fixed-height app bar at the top of the screen see [AppBar], which is used in the [Scaffold.appBar] slot. The AppBar displays the toolbar widgets, [leading], [title], and [actions], above the [bottom] (if any). If a [flexibleSpace] widget is specified then it is stacked behind the toolbar and the bottom widget."/>
@ -53,14 +56,11 @@
<itemvalue="Navigation.pushAndRemoveUntil() shortcut.<br><br> Push the given `page`, and then pop several pages in the stack until [predicate] returns true [id] is for when you are using nested navigation, as explained in documentation Obs: unlike other get methods, this one you need to send a function that returns the widget to the page argument, like this: Get.offUntil(GetPageRoute(page: () => HomePage()), predicate) [predicate] can be used like this: `Get.offUntil(page, (route) => (route as GetPageRoute).routeName == 'home')` to pop routes in stack until home, or also like this: `Get.until((route) => !Get.isDialogOpen())`, to make sure the dialog is closed"/>
<itemvalue="feat: tracking of post detail page; fix: reply to second level comment."/>
<itemvalue="clear content of input bar after post submitted."/>
<itemvalue="Initializes a new [FirebaseApp] instance by [name] and [options] and returns the created app. This method should be called before any usage of FlutterFire plugins. The default app instance can be initialized here simply by passing no "name" as an argument in both Dart & manual initialization flows."/>
<itemvalue="Notify the framework that the internal state of this object has changed. Whenever you change the internal state of a [State] object, make the change in a function that you pass to [setState]: ```dart setState(() { _myState = newValue; }); ``` The provided callback is immediately called synchronously. It must not return a future (the callback cannot be `async`), since then it would be unclear when the state was actually being set. Calling [setState] notifies the framework that the internal state of this object has changed in a way that might impact the user interface in this subtree, which causes the framework to schedule a [build] for this [State] object. If you just change the state directly without calling [setState], the framework might not schedule a [build] and the user interface for this subtree might not be updated to reflect the new state. Generally it is recommended that the `setState` method only be used to wrap the actual changes to the state, not any computation that might be associated with the change. For example, here a value used by the [build] function is incremented, and then the change is written to disk, but only the increment is wrapped in the `setState`: ```dart Future<void> _incrementCounter() async { setState(() { _counter++; }); Directory directory = await getApplicationDocumentsDirectory(); final String dirName = directory.path; await File('dircounter.txt').writeAsString('_counter'); } ``` It is an error to call this method after the framework calls [dispose]. You can determine whether it is legal to call this method by checking whether the [mounted] property is true."/>
<itemvalue="Makes this Rx looks like a function so you can update a new value using `rx(someOtherValue)`. Practical to assign the Rx directly to some Widget that has a signature ::onChange( value ) Example: ``` final myText = 'GetX rocks!'.obs; in your Constructor, just to check it works :P ever( myText, print ) ; in your build(BuildContext) { TextField( onChanged: myText, ),"/>