<itemvalue="How wide to make edges drawn when [style] is set to [PaintingStyle.stroke]. The width is given in logical pixels measured in the direction orthogonal to the direction of the path. Defaults to 0.0, which correspond to a hairline width."/>
<itemvalue="A [Comparator] may compare objects as equal (return zero), even if they are distinct objects. The sort function is not guaranteed to be stable, so distinct objects that compare as equal may occur in any order in the result: ```dart final numbers = <String>['one', 'two', 'three', 'four']; numbers.sort((a, b) => a.length.compareTo(b.length)); print(numbers); [one, two, four, three] OR [two, one, four, three]"/>
<itemvalue="The default [List] implementations use [Comparable.compare] if [compare] is omitted. ```dart final numbers = <int>[13, 2, -11, 0]; numbers.sort(); print(numbers); [-11, 0, 2, 13] ``` In that case, the elements of the list must be [Comparable] to each other."/>
<itemvalue="Sorts this list according to the order specified by the [compare] function. The [compare] function must act as a [Comparator]. ```dart final numbers = <String>['two', 'three', 'four']; Sort from shortest to longest. numbers.sort((a, b) => a.length.compareTo(b.length)); print(numbers); [two, four, three]"/>
@ -61,13 +62,12 @@
<itemvalue="A graphical icon widget drawn with a glyph from a font described in an [IconData] such as material's predefined [IconData]s in [Icons]. Icons are not interactive. For an interactive icon, consider material's [IconButton]. There must be an ambient [Directionality] widget when using [Icon]. Typically this is introduced automatically by the [WidgetsApp] or [MaterialApp]."/>
<itemvalue="To make sure that listeners removed during this iteration are not called, we set them to null, but we don't shrink the list right away. By doing this, we can continue to iterate on our list until it reaches the last listener added before the call to this method. To allow potential listeners to recursively call notifyListener, we track the number of times this method is called in _notificationCallStackDepth. Once every recursive iteration is finished (i.e. when _notificationCallStackDepth == 0), we can safely shrink our list so that it will only contain not null listeners."/>
<itemvalue="Call all the registered listeners. Call this method whenever the object changes, to notify any clients the object may have changed. Listeners that are added during this iteration will not be visited. Listeners that are removed during this iteration will not be visited after they are removed. Exceptions thrown by listeners will be caught and reported using [FlutterError.reportError]. This method must not be called after [dispose] has been called. Surprising behavior can result when reentrantly removing a listener (e.g. in response to a notification) that has been registered multiple times. See the discussion at [removeListener]."/>
<itemvalue="Because this class only notifies listeners when the [value]'s _identity_ changes, listeners will not be notified when mutable state within the value itself changes. For example, a `ValueNotifier<List<int>>` will not notify its listeners when the _contents_ of the list are changed. As a result, this class is best used with only immutable data types. For mutable data types, consider extending [ChangeNotifier] directly."/>