<itemvalue="Register a closure to be called when the object changes. If the given closure is already registered, an additional instance is added, and must be removed the same number of times it is added before it will stop being called. This method must not be called after [dispose] has been called. {@template flutter.foundation.ChangeNotifier.addListener} If a listener is added twice, and is removed once during an iteration (e.g. in response to a notification), it will still be called again. If, on the other hand, it is removed as many times as it was registered, then it will no longer be called. This odd behavior is the result of the [ChangeNotifier] not being able to determine which listener is being removed, since they are identical, therefore it will conservatively still call all the listeners when it knows that any are still registered. This surprising behavior can be unexpectedly observed when registering a listener on two separate objects which are both forwarding all registrations to a common upstream object. {@endtemplate} See also: [removeListener], which removes a previously registered closure from the list of closures that are notified when the object changes."/>
@ -53,14 +56,11 @@
<itemvalue="check user permission and jump to request page before create group chat."/>
<itemvalue="add missing params of group chat item."/>
<itemvalue="add missing params when create group chat item."/>
<itemvalue="add leak params when create group chat item."/>
<itemvalue="Controls a WebView, such as an [InAppWebView] widget instance, a [HeadlessInAppWebView] instance or [InAppBrowser] WebView instance. If you are using the [InAppWebView] widget, an [InAppWebViewController] instance can be obtained by setting the [InAppWebView.onWebViewCreated] callback. Instead, if you are using an [InAppBrowser] instance, you can get it through the [InAppBrowser.webViewController] attribute."/>
<itemvalue="A scrolling container that animates items when they are inserted or removed. This widget's [AnimatedListState] can be used to dynamically insert or remove items. To refer to the [AnimatedListState] either provide a [GlobalKey] or use the static [of] method from an item's input callback. This widget is similar to one created by [ListView.builder]. {@youtube 560 315 https:www.youtube.comwatch?v=ZtfItHwFlZ8} {@tool dartpad} This sample application uses an [AnimatedList] to create an effect when items are removed or added to the list. See code in examplesapilibwidgetsanimated_listanimated_list.0.dart {@end-tool} See also: [SliverAnimatedList], a sliver that animates items when they are inserted or removed from a list."/>