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
b0c24e8d
Unverified
Commit
b0c24e8d
authored
Feb 13, 2023
by
xubaolin
Committed by
GitHub
Feb 13, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix a Slider theme update bug (#120432)
* fix a Slider theme update bug * Code review feedback
parent
53fe8a3f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
1 deletion
+46
-1
slider.dart
packages/flutter/lib/src/material/slider.dart
+1
-1
slider_test.dart
packages/flutter/test/material/slider_test.dart
+45
-0
No files found.
packages/flutter/lib/src/material/slider.dart
View file @
b0c24e8d
...
@@ -1215,7 +1215,7 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
...
@@ -1215,7 +1215,7 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
return
;
return
;
}
}
_sliderTheme
=
value
;
_sliderTheme
=
value
;
markNeedsPaint
();
_updateLabelPainter
();
}
}
double
get
textScaleFactor
=>
_textScaleFactor
;
double
get
textScaleFactor
=>
_textScaleFactor
;
...
...
packages/flutter/test/material/slider_test.dart
View file @
b0c24e8d
...
@@ -2949,6 +2949,51 @@ void main() {
...
@@ -2949,6 +2949,51 @@ void main() {
);
);
});
});
testWidgets
(
'SliderTheme change should trigger re-layout'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/118955
double
sliderValue
=
0.0
;
Widget
buildFrame
(
ThemeMode
themeMode
)
{
return
MaterialApp
(
themeMode:
themeMode
,
theme:
ThemeData
(
brightness:
Brightness
.
light
,
useMaterial3:
true
),
darkTheme:
ThemeData
(
brightness:
Brightness
.
dark
,
useMaterial3:
true
),
home:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Material
(
child:
Center
(
child:
SizedBox
(
height:
10.0
,
width:
10.0
,
child:
Slider
(
value:
sliderValue
,
label:
'label'
,
onChanged:
(
double
value
)
=>
sliderValue
=
value
,
),
),
),
),
),
);
}
await
tester
.
pumpWidget
(
buildFrame
(
ThemeMode
.
light
));
// _RenderSlider is the last render object in the tree.
final
RenderObject
renderObject
=
tester
.
allRenderObjects
.
last
;
expect
(
renderObject
.
debugNeedsLayout
,
false
);
await
tester
.
pumpWidget
(
buildFrame
(
ThemeMode
.
dark
));
await
tester
.
pump
(
const
Duration
(
milliseconds:
100
),
// to let the theme animate
EnginePhase
.
build
,
);
expect
(
renderObject
.
debugNeedsLayout
,
true
);
// Pump the rest of the frames to complete the test.
await
tester
.
pumpAndSettle
();
});
testWidgets
(
'Slider can be painted in a narrower constraint'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Slider can be painted in a narrower constraint'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
await
tester
.
pumpWidget
(
const
MaterialApp
(
const
MaterialApp
(
...
...
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