changed Scrollbar to StatelessWidget (#87647)
diff --git a/packages/flutter/lib/src/material/scrollbar.dart b/packages/flutter/lib/src/material/scrollbar.dart
index 3f53f6b..22500e7 100644
--- a/packages/flutter/lib/src/material/scrollbar.dart
+++ b/packages/flutter/lib/src/material/scrollbar.dart
@@ -91,7 +91,7 @@
/// * [CupertinoScrollbar], an iOS style scrollbar.
/// * [ListView], which displays a linear, scrollable list of children.
/// * [GridView], which displays a 2 dimensional, scrollable array of children.
-class Scrollbar extends StatefulWidget {
+class Scrollbar extends StatelessWidget {
/// Creates a material design scrollbar that by default will connect to the
/// closest Scrollable descendant of [child].
///
@@ -170,38 +170,31 @@
final ScrollbarOrientation? scrollbarOrientation;
@override
- State<Scrollbar> createState() => _ScrollbarState();
-}
-
-class _ScrollbarState extends State<Scrollbar> {
- bool get _useCupertinoScrollbar => Theme.of(context).platform == TargetPlatform.iOS;
-
- @override
Widget build(BuildContext context) {
- if (_useCupertinoScrollbar) {
+ if (Theme.of(context).platform == TargetPlatform.iOS) {
return CupertinoScrollbar(
- isAlwaysShown: widget.isAlwaysShown ?? false,
- thickness: widget.thickness ?? CupertinoScrollbar.defaultThickness,
- thicknessWhileDragging: widget.thickness ?? CupertinoScrollbar.defaultThicknessWhileDragging,
- radius: widget.radius ?? CupertinoScrollbar.defaultRadius,
- radiusWhileDragging: widget.radius ?? CupertinoScrollbar.defaultRadiusWhileDragging,
- controller: widget.controller,
- notificationPredicate: widget.notificationPredicate,
- scrollbarOrientation: widget.scrollbarOrientation,
- child: widget.child,
+ isAlwaysShown: isAlwaysShown ?? false,
+ thickness: thickness ?? CupertinoScrollbar.defaultThickness,
+ thicknessWhileDragging: thickness ?? CupertinoScrollbar.defaultThicknessWhileDragging,
+ radius: radius ?? CupertinoScrollbar.defaultRadius,
+ radiusWhileDragging: radius ?? CupertinoScrollbar.defaultRadiusWhileDragging,
+ controller: controller,
+ notificationPredicate: notificationPredicate,
+ scrollbarOrientation: scrollbarOrientation,
+ child: child,
);
}
return _MaterialScrollbar(
- controller: widget.controller,
- isAlwaysShown: widget.isAlwaysShown,
- showTrackOnHover: widget.showTrackOnHover,
- hoverThickness: widget.hoverThickness,
- thickness: widget.thickness,
- radius: widget.radius,
- notificationPredicate: widget.notificationPredicate,
- interactive: widget.interactive,
- scrollbarOrientation: widget.scrollbarOrientation,
- child: widget.child,
+ controller: controller,
+ isAlwaysShown: isAlwaysShown,
+ showTrackOnHover: showTrackOnHover,
+ hoverThickness: hoverThickness,
+ thickness: thickness,
+ radius: radius,
+ notificationPredicate: notificationPredicate,
+ interactive: interactive,
+ scrollbarOrientation: scrollbarOrientation,
+ child: child,
);
}
}