Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
721016c1
Unverified
Commit
721016c1
authored
Aug 25, 2023
by
Kate Lovett
Committed by
GitHub
Aug 25, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove deprecated androidOverscrollIndicator from ScrollBehaviors (#133181)
parent
40af7db6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
32 additions
and
218 deletions
+32
-218
app.dart
packages/flutter/lib/src/material/app.dart
+15
-29
theme_data.dart
packages/flutter/lib/src/material/theme_data.dart
+0
-42
overscroll_indicator.dart
packages/flutter/lib/src/widgets/overscroll_indicator.dart
+5
-17
scroll_configuration.dart
packages/flutter/lib/src/widgets/scroll_configuration.dart
+7
-57
app_test.dart
packages/flutter/test/material/app_test.dart
+5
-26
theme_data_test.dart
packages/flutter/test/material/theme_data_test.dart
+0
-5
scroll_behavior_test.dart
packages/flutter/test/widgets/scroll_behavior_test.dart
+0
-42
No files found.
packages/flutter/lib/src/material/app.dart
View file @
721016c1
...
@@ -785,35 +785,26 @@ class MaterialApp extends StatefulWidget {
...
@@ -785,35 +785,26 @@ class MaterialApp extends StatefulWidget {
/// discoverable, so consider adding a Scrollbar in these cases, either directly
/// discoverable, so consider adding a Scrollbar in these cases, either directly
/// or through the [buildScrollbar] method.
/// or through the [buildScrollbar] method.
///
///
/// [MaterialScrollBehavior.androidOverscrollIndicator] specifies the
/// [ThemeData.useMaterial3] specifies the
/// overscroll indicator that is used on [TargetPlatform.android]. When null,
/// overscroll indicator that is used on [TargetPlatform.android], which
/// [ThemeData.androidOverscrollIndicator] is used. If also null, the default
/// defaults to true, resulting in a [StretchingOverscrollIndicator]. Setting
/// overscroll indicator is the [GlowingOverscrollIndicator]. These properties
/// [ThemeData.useMaterial3] to false will instead use a
/// are deprecated. In order to use the [StretchingOverscrollIndicator], use
/// [GlowingOverscrollIndicator].
/// the [ThemeData.useMaterial3] flag, or override
/// [ScrollBehavior.buildOverscrollIndicator].
///
///
/// See also:
/// See also:
///
///
/// * [ScrollBehavior], the default scrolling behavior extended by this class.
/// * [ScrollBehavior], the default scrolling behavior extended by this class.
class
MaterialScrollBehavior
extends
ScrollBehavior
{
class
MaterialScrollBehavior
extends
ScrollBehavior
{
/// Creates a MaterialScrollBehavior that decorates [Scrollable]s with
/// Creates a MaterialScrollBehavior that decorates [Scrollable]s with
/// [
Glow
ingOverscrollIndicator]s and [Scrollbar]s based on the current
/// [
Stretch
ingOverscrollIndicator]s and [Scrollbar]s based on the current
/// platform and provided [ScrollableDetails].
/// platform and provided [ScrollableDetails].
///
///
/// [MaterialScrollBehavior.androidOverscrollIndicator] specifies the
/// [ThemeData.useMaterial3] specifies the
/// overscroll indicator that is used on [TargetPlatform.android]. When null,
/// overscroll indicator that is used on [TargetPlatform.android], which
/// [ThemeData.androidOverscrollIndicator] is used. If also null, the default
/// defaults to true, resulting in a [StretchingOverscrollIndicator]. Setting
/// overscroll indicator is the [GlowingOverscrollIndicator].
/// [ThemeData.useMaterial3] to false will instead use a
const
MaterialScrollBehavior
({
/// [GlowingOverscrollIndicator].
@Deprecated
(
const
MaterialScrollBehavior
();
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
super
.
androidOverscrollIndicator
,
})
:
_androidOverscrollIndicator
=
androidOverscrollIndicator
;
final
AndroidOverscrollIndicator
?
_androidOverscrollIndicator
;
@override
@override
TargetPlatform
getPlatform
(
BuildContext
context
)
=>
Theme
.
of
(
context
).
platform
;
TargetPlatform
getPlatform
(
BuildContext
context
)
=>
Theme
.
of
(
context
).
platform
;
...
@@ -847,14 +838,9 @@ class MaterialScrollBehavior extends ScrollBehavior {
...
@@ -847,14 +838,9 @@ class MaterialScrollBehavior extends ScrollBehavior {
Widget
buildOverscrollIndicator
(
BuildContext
context
,
Widget
child
,
ScrollableDetails
details
)
{
Widget
buildOverscrollIndicator
(
BuildContext
context
,
Widget
child
,
ScrollableDetails
details
)
{
// When modifying this function, consider modifying the implementation in
// When modifying this function, consider modifying the implementation in
// the base class ScrollBehavior as well.
// the base class ScrollBehavior as well.
late
final
AndroidOverscrollIndicator
indicator
;
final
AndroidOverscrollIndicator
indicator
=
Theme
.
of
(
context
).
useMaterial3
if
(
Theme
.
of
(
context
).
useMaterial3
)
{
?
AndroidOverscrollIndicator
.
stretch
indicator
=
AndroidOverscrollIndicator
.
stretch
;
:
AndroidOverscrollIndicator
.
glow
;
}
else
{
indicator
=
_androidOverscrollIndicator
??
Theme
.
of
(
context
).
androidOverscrollIndicator
??
androidOverscrollIndicator
;
}
switch
(
getPlatform
(
context
))
{
switch
(
getPlatform
(
context
))
{
case
TargetPlatform
.
iOS
:
case
TargetPlatform
.
iOS
:
case
TargetPlatform
.
linux
:
case
TargetPlatform
.
linux
:
...
...
packages/flutter/lib/src/material/theme_data.dart
View file @
721016c1
...
@@ -335,11 +335,6 @@ class ThemeData with Diagnosticable {
...
@@ -335,11 +335,6 @@ class ThemeData with Diagnosticable {
ToggleButtonsThemeData
?
toggleButtonsTheme
,
ToggleButtonsThemeData
?
toggleButtonsTheme
,
TooltipThemeData
?
tooltipTheme
,
TooltipThemeData
?
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
AndroidOverscrollIndicator
?
androidOverscrollIndicator
,
@Deprecated
(
@Deprecated
(
'No longer used by the framework, please remove any reference to it. '
'No longer used by the framework, please remove any reference to it. '
'For more information, consult the migration guide at '
'For more information, consult the migration guide at '
...
@@ -636,7 +631,6 @@ class ThemeData with Diagnosticable {
...
@@ -636,7 +631,6 @@ class ThemeData with Diagnosticable {
toggleButtonsTheme:
toggleButtonsTheme
,
toggleButtonsTheme:
toggleButtonsTheme
,
tooltipTheme:
tooltipTheme
,
tooltipTheme:
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
androidOverscrollIndicator
,
toggleableActiveColor:
toggleableActiveColor
,
toggleableActiveColor:
toggleableActiveColor
,
selectedRowColor:
selectedRowColor
,
selectedRowColor:
selectedRowColor
,
errorColor:
errorColor
,
errorColor:
errorColor
,
...
@@ -747,11 +741,6 @@ class ThemeData with Diagnosticable {
...
@@ -747,11 +741,6 @@ class ThemeData with Diagnosticable {
required
this
.
toggleButtonsTheme
,
required
this
.
toggleButtonsTheme
,
required
this
.
tooltipTheme
,
required
this
.
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
this
.
androidOverscrollIndicator
,
@Deprecated
(
@Deprecated
(
'No longer used by the framework, please remove any reference to it. '
'No longer used by the framework, please remove any reference to it. '
'For more information, consult the migration guide at '
'For more information, consult the migration guide at '
...
@@ -1449,27 +1438,6 @@ class ThemeData with Diagnosticable {
...
@@ -1449,27 +1438,6 @@ class ThemeData with Diagnosticable {
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
/// Specifies which overscroll indicator to use on [TargetPlatform.android].
///
/// When null, the default value of
/// [MaterialScrollBehavior.androidOverscrollIndicator] is
/// [AndroidOverscrollIndicator.glow].
///
/// This property is deprecated. Use the [useMaterial3] flag instead, or
/// override [ScrollBehavior.buildOverscrollIndicator].
///
/// See also:
///
/// * [StretchingOverscrollIndicator], a Material Design edge effect
/// that transforms the contents of a scrollable when overscrolled.
/// * [GlowingOverscrollIndicator], an edge effect that paints a glow
/// over the contents of a scrollable when overscrolled.
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
final
AndroidOverscrollIndicator
?
androidOverscrollIndicator
;
/// Obsolete property that was used for input validation errors, e.g. in
/// Obsolete property that was used for input validation errors, e.g. in
/// [TextField] fields. Use [ColorScheme.error] instead.
/// [TextField] fields. Use [ColorScheme.error] instead.
@Deprecated
(
@Deprecated
(
...
@@ -1604,11 +1572,6 @@ class ThemeData with Diagnosticable {
...
@@ -1604,11 +1572,6 @@ class ThemeData with Diagnosticable {
ToggleButtonsThemeData
?
toggleButtonsTheme
,
ToggleButtonsThemeData
?
toggleButtonsTheme
,
TooltipThemeData
?
tooltipTheme
,
TooltipThemeData
?
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
AndroidOverscrollIndicator
?
androidOverscrollIndicator
,
@Deprecated
(
@Deprecated
(
'No longer used by the framework, please remove any reference to it. '
'No longer used by the framework, please remove any reference to it. '
'For more information, consult the migration guide at '
'For more information, consult the migration guide at '
...
@@ -1738,7 +1701,6 @@ class ThemeData with Diagnosticable {
...
@@ -1738,7 +1701,6 @@ class ThemeData with Diagnosticable {
toggleButtonsTheme:
toggleButtonsTheme
??
this
.
toggleButtonsTheme
,
toggleButtonsTheme:
toggleButtonsTheme
??
this
.
toggleButtonsTheme
,
tooltipTheme:
tooltipTheme
??
this
.
tooltipTheme
,
tooltipTheme:
tooltipTheme
??
this
.
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
androidOverscrollIndicator
??
this
.
androidOverscrollIndicator
,
toggleableActiveColor:
toggleableActiveColor
??
_toggleableActiveColor
,
toggleableActiveColor:
toggleableActiveColor
??
_toggleableActiveColor
,
selectedRowColor:
selectedRowColor
??
_selectedRowColor
,
selectedRowColor:
selectedRowColor
??
_selectedRowColor
,
errorColor:
errorColor
??
_errorColor
,
errorColor:
errorColor
??
_errorColor
,
...
@@ -1932,7 +1894,6 @@ class ThemeData with Diagnosticable {
...
@@ -1932,7 +1894,6 @@ class ThemeData with Diagnosticable {
toggleButtonsTheme:
ToggleButtonsThemeData
.
lerp
(
a
.
toggleButtonsTheme
,
b
.
toggleButtonsTheme
,
t
)!,
toggleButtonsTheme:
ToggleButtonsThemeData
.
lerp
(
a
.
toggleButtonsTheme
,
b
.
toggleButtonsTheme
,
t
)!,
tooltipTheme:
TooltipThemeData
.
lerp
(
a
.
tooltipTheme
,
b
.
tooltipTheme
,
t
)!,
tooltipTheme:
TooltipThemeData
.
lerp
(
a
.
tooltipTheme
,
b
.
tooltipTheme
,
t
)!,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
t
<
0.5
?
a
.
androidOverscrollIndicator
:
b
.
androidOverscrollIndicator
,
toggleableActiveColor:
Color
.
lerp
(
a
.
toggleableActiveColor
,
b
.
toggleableActiveColor
,
t
),
toggleableActiveColor:
Color
.
lerp
(
a
.
toggleableActiveColor
,
b
.
toggleableActiveColor
,
t
),
selectedRowColor:
Color
.
lerp
(
a
.
selectedRowColor
,
b
.
selectedRowColor
,
t
),
selectedRowColor:
Color
.
lerp
(
a
.
selectedRowColor
,
b
.
selectedRowColor
,
t
),
errorColor:
Color
.
lerp
(
a
.
errorColor
,
b
.
errorColor
,
t
),
errorColor:
Color
.
lerp
(
a
.
errorColor
,
b
.
errorColor
,
t
),
...
@@ -2038,7 +1999,6 @@ class ThemeData with Diagnosticable {
...
@@ -2038,7 +1999,6 @@ class ThemeData with Diagnosticable {
other
.
toggleButtonsTheme
==
toggleButtonsTheme
&&
other
.
toggleButtonsTheme
==
toggleButtonsTheme
&&
other
.
tooltipTheme
==
tooltipTheme
&&
other
.
tooltipTheme
==
tooltipTheme
&&
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
other
.
androidOverscrollIndicator
==
androidOverscrollIndicator
&&
other
.
toggleableActiveColor
==
toggleableActiveColor
&&
other
.
toggleableActiveColor
==
toggleableActiveColor
&&
other
.
selectedRowColor
==
selectedRowColor
&&
other
.
selectedRowColor
==
selectedRowColor
&&
other
.
errorColor
==
errorColor
&&
other
.
errorColor
==
errorColor
&&
...
@@ -2141,7 +2101,6 @@ class ThemeData with Diagnosticable {
...
@@ -2141,7 +2101,6 @@ class ThemeData with Diagnosticable {
toggleButtonsTheme
,
toggleButtonsTheme
,
tooltipTheme
,
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator
,
toggleableActiveColor
,
toggleableActiveColor
,
selectedRowColor
,
selectedRowColor
,
errorColor
,
errorColor
,
...
@@ -2246,7 +2205,6 @@ class ThemeData with Diagnosticable {
...
@@ -2246,7 +2205,6 @@ class ThemeData with Diagnosticable {
properties
.
add
(
DiagnosticsProperty
<
ToggleButtonsThemeData
>(
'toggleButtonsTheme'
,
toggleButtonsTheme
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
DiagnosticsProperty
<
ToggleButtonsThemeData
>(
'toggleButtonsTheme'
,
toggleButtonsTheme
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
DiagnosticsProperty
<
TooltipThemeData
>(
'tooltipTheme'
,
tooltipTheme
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
DiagnosticsProperty
<
TooltipThemeData
>(
'tooltipTheme'
,
tooltipTheme
,
level:
DiagnosticLevel
.
debug
));
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
properties
.
add
(
EnumProperty
<
AndroidOverscrollIndicator
>(
'androidOverscrollIndicator'
,
androidOverscrollIndicator
,
defaultValue:
null
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'toggleableActiveColor'
,
toggleableActiveColor
,
defaultValue:
defaultData
.
toggleableActiveColor
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'toggleableActiveColor'
,
toggleableActiveColor
,
defaultValue:
defaultData
.
toggleableActiveColor
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'selectedRowColor'
,
selectedRowColor
,
defaultValue:
defaultData
.
selectedRowColor
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'selectedRowColor'
,
selectedRowColor
,
defaultValue:
defaultData
.
selectedRowColor
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'errorColor'
,
errorColor
,
defaultValue:
defaultData
.
errorColor
,
level:
DiagnosticLevel
.
debug
));
properties
.
add
(
ColorProperty
(
'errorColor'
,
errorColor
,
defaultValue:
defaultData
.
errorColor
,
level:
DiagnosticLevel
.
debug
));
...
...
packages/flutter/lib/src/widgets/overscroll_indicator.dart
View file @
721016c1
...
@@ -613,19 +613,15 @@ enum _StretchDirection {
...
@@ -613,19 +613,15 @@ enum _StretchDirection {
/// To prevent the indicator from showing the indication, call
/// To prevent the indicator from showing the indication, call
/// [OverscrollIndicatorNotification.disallowIndicator] on the notification.
/// [OverscrollIndicatorNotification.disallowIndicator] on the notification.
///
///
/// Created by [ScrollBehavior.buildOverscrollIndicator] on platforms
/// Created by [
Material
ScrollBehavior.buildOverscrollIndicator] on platforms
/// (e.g., Android) that commonly use this type of overscroll indication when
/// (e.g., Android) that commonly use this type of overscroll indication when
/// [ScrollBehavior.androidOverscrollIndicator] is
/// [ThemeData.useMaterial3] is true. Otherwise, when [ThemeData.useMaterial3]
/// [AndroidOverscrollIndicator.stretch]. Otherwise, the default
/// is false, a [GlowingOverscrollIndicator] is used instead.=
/// [GlowingOverscrollIndicator] is applied.
/// [ScrollBehavior.androidOverscrollIndicator] is deprecated, use
/// [ThemeData.useMaterial3], or override
/// [ScrollBehavior.buildOverscrollIndicator] to choose the desired indicator.
///
///
/// See also:
/// See also:
///
///
/// * [OverscrollIndicatorNotification], which can be used to prevent the
stretch
/// * [OverscrollIndicatorNotification], which can be used to prevent the
/// effect from being applied at all.
///
stretch
effect from being applied at all.
/// * [NotificationListener], to listen for the
/// * [NotificationListener], to listen for the
/// [OverscrollIndicatorNotification].
/// [OverscrollIndicatorNotification].
/// * [GlowingOverscrollIndicator], the default overscroll indicator for
/// * [GlowingOverscrollIndicator], the default overscroll indicator for
...
@@ -666,14 +662,6 @@ class StretchingOverscrollIndicator extends StatefulWidget {
...
@@ -666,14 +662,6 @@ class StretchingOverscrollIndicator extends StatefulWidget {
/// The overscroll indicator will apply a stretch effect to this child. This
/// The overscroll indicator will apply a stretch effect to this child. This
/// child (and its subtree) should include a source of [ScrollNotification]
/// child (and its subtree) should include a source of [ScrollNotification]
/// notifications.
/// notifications.
///
/// Typically a [StretchingOverscrollIndicator] is created by a
/// [ScrollBehavior.buildOverscrollIndicator] method when opted-in using the
/// [ScrollBehavior.androidOverscrollIndicator] flag. In this case
/// the child is usually the one provided as an argument to that method.
/// [ScrollBehavior.androidOverscrollIndicator] is deprecated, use
/// [ThemeData.useMaterial3], or override
/// [ScrollBehavior.buildOverscrollIndicator] to choose the desired indicator.
final
Widget
?
child
;
final
Widget
?
child
;
@override
@override
...
...
packages/flutter/lib/src/widgets/scroll_configuration.dart
View file @
721016c1
...
@@ -27,10 +27,6 @@ const Set<PointerDeviceKind> _kTouchLikeDeviceTypes = <PointerDeviceKind>{
...
@@ -27,10 +27,6 @@ const Set<PointerDeviceKind> _kTouchLikeDeviceTypes = <PointerDeviceKind>{
PointerDeviceKind
.
unknown
,
PointerDeviceKind
.
unknown
,
};
};
/// The default overscroll indicator applied on [TargetPlatform.android].
// TODO(Piinks): Complete migration to stretch by default.
const
AndroidOverscrollIndicator
_kDefaultAndroidOverscrollIndicator
=
AndroidOverscrollIndicator
.
glow
;
/// Types of overscroll indicators supported by [TargetPlatform.android].
/// Types of overscroll indicators supported by [TargetPlatform.android].
enum
AndroidOverscrollIndicator
{
enum
AndroidOverscrollIndicator
{
/// Utilizes a [StretchingOverscrollIndicator], which transforms the contents
/// Utilizes a [StretchingOverscrollIndicator], which transforms the contents
...
@@ -67,28 +63,7 @@ enum AndroidOverscrollIndicator {
...
@@ -67,28 +63,7 @@ enum AndroidOverscrollIndicator {
@immutable
@immutable
class
ScrollBehavior
{
class
ScrollBehavior
{
/// Creates a description of how [Scrollable] widgets should behave.
/// Creates a description of how [Scrollable] widgets should behave.
const
ScrollBehavior
({
const
ScrollBehavior
();
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
AndroidOverscrollIndicator
?
androidOverscrollIndicator
,
}):
_androidOverscrollIndicator
=
androidOverscrollIndicator
;
/// Specifies which overscroll indicator to use on [TargetPlatform.android].
///
/// Cannot be null. Defaults to [AndroidOverscrollIndicator.glow].
///
/// See also:
///
/// * [MaterialScrollBehavior], which supports setting this property
/// using [ThemeData].
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
AndroidOverscrollIndicator
get
androidOverscrollIndicator
=>
_androidOverscrollIndicator
??
_kDefaultAndroidOverscrollIndicator
;
final
AndroidOverscrollIndicator
?
_androidOverscrollIndicator
;
/// Creates a copy of this ScrollBehavior, making it possible to
/// Creates a copy of this ScrollBehavior, making it possible to
/// easily toggle `scrollbar` and `overscrollIndicator` effects.
/// easily toggle `scrollbar` and `overscrollIndicator` effects.
...
@@ -105,11 +80,6 @@ class ScrollBehavior {
...
@@ -105,11 +80,6 @@ class ScrollBehavior {
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
ScrollPhysics
?
physics
,
ScrollPhysics
?
physics
,
TargetPlatform
?
platform
,
TargetPlatform
?
platform
,
@Deprecated
(
'Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. '
'This feature was deprecated after v2.13.0-0.0.pre.'
)
AndroidOverscrollIndicator
?
androidOverscrollIndicator
,
})
{
})
{
return
_WrappedScrollBehavior
(
return
_WrappedScrollBehavior
(
delegate:
this
,
delegate:
this
,
...
@@ -119,7 +89,6 @@ class ScrollBehavior {
...
@@ -119,7 +89,6 @@ class ScrollBehavior {
pointerAxisModifiers:
pointerAxisModifiers
,
pointerAxisModifiers:
pointerAxisModifiers
,
physics:
physics
,
physics:
physics
,
platform:
platform
,
platform:
platform
,
androidOverscrollIndicator:
androidOverscrollIndicator
);
);
}
}
...
@@ -187,23 +156,13 @@ class ScrollBehavior {
...
@@ -187,23 +156,13 @@ class ScrollBehavior {
case
TargetPlatform
.
windows
:
case
TargetPlatform
.
windows
:
return
child
;
return
child
;
case
TargetPlatform
.
android
:
case
TargetPlatform
.
android
:
switch
(
androidOverscrollIndicator
)
{
case
AndroidOverscrollIndicator
.
stretch
:
return
StretchingOverscrollIndicator
(
axisDirection:
details
.
direction
,
child:
child
,
);
case
AndroidOverscrollIndicator
.
glow
:
break
;
}
case
TargetPlatform
.
fuchsia
:
case
TargetPlatform
.
fuchsia
:
break
;
return
GlowingOverscrollIndicator
(
axisDirection:
details
.
direction
,
color:
_kDefaultGlowColor
,
child:
child
,
);
}
}
return
GlowingOverscrollIndicator
(
axisDirection:
details
.
direction
,
color:
_kDefaultGlowColor
,
child:
child
,
);
}
}
/// Specifies the type of velocity tracker to use in the descendant
/// Specifies the type of velocity tracker to use in the descendant
...
@@ -289,9 +248,7 @@ class _WrappedScrollBehavior implements ScrollBehavior {
...
@@ -289,9 +248,7 @@ class _WrappedScrollBehavior implements ScrollBehavior {
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
this
.
physics
,
this
.
physics
,
this
.
platform
,
this
.
platform
,
AndroidOverscrollIndicator
?
androidOverscrollIndicator
,
})
:
_dragDevices
=
dragDevices
,
})
:
_androidOverscrollIndicator
=
androidOverscrollIndicator
,
_dragDevices
=
dragDevices
,
_pointerAxisModifiers
=
pointerAxisModifiers
;
_pointerAxisModifiers
=
pointerAxisModifiers
;
final
ScrollBehavior
delegate
;
final
ScrollBehavior
delegate
;
...
@@ -301,8 +258,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
...
@@ -301,8 +258,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
final
TargetPlatform
?
platform
;
final
TargetPlatform
?
platform
;
final
Set
<
PointerDeviceKind
>?
_dragDevices
;
final
Set
<
PointerDeviceKind
>?
_dragDevices
;
final
Set
<
LogicalKeyboardKey
>?
_pointerAxisModifiers
;
final
Set
<
LogicalKeyboardKey
>?
_pointerAxisModifiers
;
@override
final
AndroidOverscrollIndicator
?
_androidOverscrollIndicator
;
@override
@override
Set
<
PointerDeviceKind
>
get
dragDevices
=>
_dragDevices
??
delegate
.
dragDevices
;
Set
<
PointerDeviceKind
>
get
dragDevices
=>
_dragDevices
??
delegate
.
dragDevices
;
...
@@ -310,9 +265,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
...
@@ -310,9 +265,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
@override
@override
Set
<
LogicalKeyboardKey
>
get
pointerAxisModifiers
=>
_pointerAxisModifiers
??
delegate
.
pointerAxisModifiers
;
Set
<
LogicalKeyboardKey
>
get
pointerAxisModifiers
=>
_pointerAxisModifiers
??
delegate
.
pointerAxisModifiers
;
@override
AndroidOverscrollIndicator
get
androidOverscrollIndicator
=>
_androidOverscrollIndicator
??
delegate
.
androidOverscrollIndicator
;
@override
@override
Widget
buildOverscrollIndicator
(
BuildContext
context
,
Widget
child
,
ScrollableDetails
details
)
{
Widget
buildOverscrollIndicator
(
BuildContext
context
,
Widget
child
,
ScrollableDetails
details
)
{
if
(
overscroll
)
{
if
(
overscroll
)
{
...
@@ -337,7 +289,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
...
@@ -337,7 +289,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
Set
<
LogicalKeyboardKey
>?
pointerAxisModifiers
,
ScrollPhysics
?
physics
,
ScrollPhysics
?
physics
,
TargetPlatform
?
platform
,
TargetPlatform
?
platform
,
AndroidOverscrollIndicator
?
androidOverscrollIndicator
})
{
})
{
return
delegate
.
copyWith
(
return
delegate
.
copyWith
(
scrollbars:
scrollbars
??
this
.
scrollbars
,
scrollbars:
scrollbars
??
this
.
scrollbars
,
...
@@ -346,7 +297,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
...
@@ -346,7 +297,6 @@ class _WrappedScrollBehavior implements ScrollBehavior {
pointerAxisModifiers:
pointerAxisModifiers
??
this
.
pointerAxisModifiers
,
pointerAxisModifiers:
pointerAxisModifiers
??
this
.
pointerAxisModifiers
,
physics:
physics
??
this
.
physics
,
physics:
physics
??
this
.
physics
,
platform:
platform
??
this
.
platform
,
platform:
platform
??
this
.
platform
,
androidOverscrollIndicator:
androidOverscrollIndicator
??
this
.
androidOverscrollIndicator
,
);
);
}
}
...
...
packages/flutter/test/material/app_test.dart
View file @
721016c1
...
@@ -1299,9 +1299,8 @@ void main() {
...
@@ -1299,9 +1299,8 @@ void main() {
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsNothing
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsNothing
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
testWidgetsWithLeakTracking
(
'
ScrollBehavior
stretch android overscroll indicator'
,
(
WidgetTester
tester
)
async
{
testWidgetsWithLeakTracking
(
'
MaterialScrollBehavior default
stretch android overscroll indicator'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
MaterialApp
(
await
tester
.
pumpWidget
(
MaterialApp
(
scrollBehavior:
const
MaterialScrollBehavior
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
),
home:
ListView
(
home:
ListView
(
children:
const
<
Widget
>[
children:
const
<
Widget
>[
SizedBox
(
SizedBox
(
...
@@ -1319,8 +1318,8 @@ void main() {
...
@@ -1319,8 +1318,8 @@ void main() {
testWidgetsWithLeakTracking
(
'Overscroll indicator can be set by theme'
,
(
WidgetTester
tester
)
async
{
testWidgetsWithLeakTracking
(
'Overscroll indicator can be set by theme'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
MaterialApp
(
await
tester
.
pumpWidget
(
MaterialApp
(
// The current default is
glowing
, setting via the theme should override.
// The current default is
M3 and stretch overscroll
, setting via the theme should override.
theme:
ThemeData
().
copyWith
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
),
theme:
ThemeData
().
copyWith
(
useMaterial3:
false
),
home:
ListView
(
home:
ListView
(
children:
const
<
Widget
>[
children:
const
<
Widget
>[
SizedBox
(
SizedBox
(
...
@@ -1332,28 +1331,8 @@ void main() {
...
@@ -1332,28 +1331,8 @@ void main() {
),
),
));
));
expect
(
find
.
byType
(
StretchingOverscrollIndicator
),
findsOneWidget
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsOneWidget
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsNothing
);
expect
(
find
.
byType
(
StretchingOverscrollIndicator
),
findsNothing
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
testWidgetsWithLeakTracking
(
'Overscroll indicator in MaterialScrollBehavior takes precedence over theme'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
MaterialApp
(
// MaterialScrollBehavior.androidOverscrollIndicator takes precedence over theme.
scrollBehavior:
const
MaterialScrollBehavior
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
),
theme:
ThemeData
().
copyWith
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
glow
),
home:
ListView
(
children:
const
<
Widget
>[
SizedBox
(
height:
1000.0
,
width:
1000.0
,
child:
Text
(
'Test'
),
),
],
),
));
expect
(
find
.
byType
(
StretchingOverscrollIndicator
),
findsOneWidget
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsNothing
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
testWidgetsWithLeakTracking
(
'Material3 - ListView clip behavior updates overscroll indicator clip behavior'
,
(
WidgetTester
tester
)
async
{
testWidgetsWithLeakTracking
(
'Material3 - ListView clip behavior updates overscroll indicator clip behavior'
,
(
WidgetTester
tester
)
async
{
...
...
packages/flutter/test/material/theme_data_test.dart
View file @
721016c1
...
@@ -809,7 +809,6 @@ void main() {
...
@@ -809,7 +809,6 @@ void main() {
toggleButtonsTheme:
const
ToggleButtonsThemeData
(
textStyle:
TextStyle
(
color:
Colors
.
black
)),
toggleButtonsTheme:
const
ToggleButtonsThemeData
(
textStyle:
TextStyle
(
color:
Colors
.
black
)),
tooltipTheme:
const
TooltipThemeData
(
height:
100
),
tooltipTheme:
const
TooltipThemeData
(
height:
100
),
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
glow
,
toggleableActiveColor:
Colors
.
black
,
toggleableActiveColor:
Colors
.
black
,
selectedRowColor:
Colors
.
black
,
selectedRowColor:
Colors
.
black
,
errorColor:
Colors
.
black
,
errorColor:
Colors
.
black
,
...
@@ -928,7 +927,6 @@ void main() {
...
@@ -928,7 +927,6 @@ void main() {
tooltipTheme:
const
TooltipThemeData
(
height:
100
),
tooltipTheme:
const
TooltipThemeData
(
height:
100
),
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
,
toggleableActiveColor:
Colors
.
white
,
toggleableActiveColor:
Colors
.
white
,
selectedRowColor:
Colors
.
white
,
selectedRowColor:
Colors
.
white
,
errorColor:
Colors
.
white
,
errorColor:
Colors
.
white
,
...
@@ -1030,7 +1028,6 @@ void main() {
...
@@ -1030,7 +1028,6 @@ void main() {
tooltipTheme:
otherTheme
.
tooltipTheme
,
tooltipTheme:
otherTheme
.
tooltipTheme
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
androidOverscrollIndicator:
otherTheme
.
androidOverscrollIndicator
,
toggleableActiveColor:
otherTheme
.
toggleableActiveColor
,
toggleableActiveColor:
otherTheme
.
toggleableActiveColor
,
selectedRowColor:
otherTheme
.
selectedRowColor
,
selectedRowColor:
otherTheme
.
selectedRowColor
,
errorColor:
otherTheme
.
errorColor
,
errorColor:
otherTheme
.
errorColor
,
...
@@ -1133,7 +1130,6 @@ void main() {
...
@@ -1133,7 +1130,6 @@ void main() {
expect
(
themeDataCopy
.
tooltipTheme
,
equals
(
otherTheme
.
tooltipTheme
));
expect
(
themeDataCopy
.
tooltipTheme
,
equals
(
otherTheme
.
tooltipTheme
));
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
expect
(
themeDataCopy
.
androidOverscrollIndicator
,
equals
(
otherTheme
.
androidOverscrollIndicator
));
expect
(
themeDataCopy
.
toggleableActiveColor
,
equals
(
otherTheme
.
toggleableActiveColor
));
expect
(
themeDataCopy
.
toggleableActiveColor
,
equals
(
otherTheme
.
toggleableActiveColor
));
expect
(
themeDataCopy
.
selectedRowColor
,
equals
(
otherTheme
.
selectedRowColor
));
expect
(
themeDataCopy
.
selectedRowColor
,
equals
(
otherTheme
.
selectedRowColor
));
expect
(
themeDataCopy
.
errorColor
,
equals
(
otherTheme
.
errorColor
));
expect
(
themeDataCopy
.
errorColor
,
equals
(
otherTheme
.
errorColor
));
...
@@ -1267,7 +1263,6 @@ void main() {
...
@@ -1267,7 +1263,6 @@ void main() {
'toggleButtonsTheme'
,
'toggleButtonsTheme'
,
'tooltipTheme'
,
'tooltipTheme'
,
// DEPRECATED (newest deprecations at the bottom)
// DEPRECATED (newest deprecations at the bottom)
'androidOverscrollIndicator'
,
'toggleableActiveColor'
,
'toggleableActiveColor'
,
'selectedRowColor'
,
'selectedRowColor'
,
'errorColor'
,
'errorColor'
,
...
...
packages/flutter/test/widgets/scroll_behavior_test.dart
View file @
721016c1
...
@@ -154,32 +154,6 @@ void main() {
...
@@ -154,32 +154,6 @@ void main() {
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsOneWidget
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsOneWidget
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
testWidgets
(
'ScrollBehavior stretch android overscroll indicator'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
data:
const
MediaQueryData
(
size:
Size
(
800
,
600
)),
child:
ScrollConfiguration
(
behavior:
const
ScrollBehavior
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
),
child:
ListView
(
children:
const
<
Widget
>[
SizedBox
(
height:
1000.0
,
width:
1000.0
,
child:
Text
(
'Test'
),
),
],
),
),
),
),
);
expect
(
find
.
byType
(
StretchingOverscrollIndicator
),
findsOneWidget
);
expect
(
find
.
byType
(
GlowingOverscrollIndicator
),
findsNothing
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
group
(
'ScrollBehavior configuration is maintained over multiple copies'
,
()
{
group
(
'ScrollBehavior configuration is maintained over multiple copies'
,
()
{
testWidgets
(
'dragDevices'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'dragDevices'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/91673
// Regression test for https://github.com/flutter/flutter/issues/91673
...
@@ -203,22 +177,6 @@ void main() {
...
@@ -203,22 +177,6 @@ void main() {
expect
(
twiceCopiedBehavior
.
dragDevices
,
PointerDeviceKind
.
values
.
toSet
());
expect
(
twiceCopiedBehavior
.
dragDevices
,
PointerDeviceKind
.
values
.
toSet
());
});
});
testWidgets
(
'androidOverscrollIndicator'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/91673
const
ScrollBehavior
defaultBehavior
=
ScrollBehavior
();
expect
(
defaultBehavior
.
androidOverscrollIndicator
,
AndroidOverscrollIndicator
.
glow
);
// Use copyWith to modify androidOverscrollIndicator
final
ScrollBehavior
onceCopiedBehavior
=
defaultBehavior
.
copyWith
(
androidOverscrollIndicator:
AndroidOverscrollIndicator
.
stretch
,
);
expect
(
onceCopiedBehavior
.
androidOverscrollIndicator
,
AndroidOverscrollIndicator
.
stretch
);
// Copy again. The previously modified value should carry over.
final
ScrollBehavior
twiceCopiedBehavior
=
onceCopiedBehavior
.
copyWith
();
expect
(
twiceCopiedBehavior
.
androidOverscrollIndicator
,
AndroidOverscrollIndicator
.
stretch
);
});
testWidgets
(
'physics'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'physics'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/91673
// Regression test for https://github.com/flutter/flutter/issues/91673
late
ScrollPhysics
defaultPhysics
;
late
ScrollPhysics
defaultPhysics
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment