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
19a380ff
Unverified
Commit
19a380ff
authored
Feb 14, 2022
by
Taha Tesser
Committed by
GitHub
Feb 14, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add `CupertinoSlider` example (#93633)
parent
79df99d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
122 additions
and
0 deletions
+122
-0
cupertino_slider.0.dart
examples/api/lib/cupertino/slider/cupertino_slider.0.dart
+85
-0
cupertino_slider.0_test.dart
...es/api/test/cupertino/slider/cupertino_slider.0_test.dart
+31
-0
slider.dart
packages/flutter/lib/src/cupertino/slider.dart
+6
-0
No files found.
examples/api/lib/cupertino/slider/cupertino_slider.0.dart
0 → 100644
View file @
19a380ff
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flutter code sample for CupertinoSlider
import
'package:flutter/cupertino.dart'
;
void
main
(
)
=>
runApp
(
const
MyApp
());
class
MyApp
extends
StatelessWidget
{
const
MyApp
({
Key
?
key
})
:
super
(
key:
key
);
static
const
String
_title
=
'Flutter Code Sample'
;
@override
Widget
build
(
BuildContext
context
)
{
return
const
CupertinoApp
(
title:
_title
,
home:
CupertinoSliderSample
(),
);
}
}
class
CupertinoSliderSample
extends
StatefulWidget
{
const
CupertinoSliderSample
({
Key
?
key
})
:
super
(
key:
key
);
@override
State
<
CupertinoSliderSample
>
createState
()
=>
_CupertinoSliderSampleState
();
}
class
_CupertinoSliderSampleState
extends
State
<
CupertinoSliderSample
>
{
double
_currentSliderValue
=
0.0
;
String
?
_sliderStatus
;
@override
Widget
build
(
BuildContext
context
)
{
return
CupertinoPageScaffold
(
child:
Center
(
child:
Column
(
mainAxisSize:
MainAxisSize
.
min
,
children:
<
Widget
>[
// Display the current slider value.
Text
(
'
$_currentSliderValue
'
),
CupertinoSlider
(
key:
const
Key
(
'slider'
),
value:
_currentSliderValue
,
// This allows the slider to jump between divisions.
// If null, the slide movement is continuous.
divisions:
5
,
// The maximum slider value
max:
100
,
activeColor:
CupertinoColors
.
systemPurple
,
thumbColor:
CupertinoColors
.
systemPurple
,
// This is called when sliding is started.
onChangeStart:
(
double
value
)
{
setState
(()
{
_sliderStatus
=
'Sliding'
;
});
},
// This is called when sliding has ended.
onChangeEnd:
(
double
value
)
{
setState
(()
{
_sliderStatus
=
'Finished sliding'
;
});
},
// This is called when slider value is changed.
onChanged:
(
double
value
)
{
setState
(()
{
_currentSliderValue
=
value
;
});
},
),
Text
(
_sliderStatus
??
''
,
style:
CupertinoTheme
.
of
(
context
).
textTheme
.
textStyle
.
copyWith
(
fontSize:
12
,
),
),
],
),
),
);
}
}
examples/api/test/cupertino/slider/cupertino_slider.0_test.dart
0 → 100644
View file @
19a380ff
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter/cupertino.dart'
;
import
'package:flutter_api_samples/cupertino/slider/cupertino_slider.0.dart'
as
example
;
import
'package:flutter_test/flutter_test.dart'
;
void
main
(
)
{
Future
<
void
>
_dragSlider
(
WidgetTester
tester
,
Key
sliderKey
)
{
final
Offset
topLeft
=
tester
.
getTopLeft
(
find
.
byKey
(
sliderKey
));
const
double
unit
=
CupertinoThumbPainter
.
radius
;
const
double
delta
=
3.0
*
unit
;
return
tester
.
dragFrom
(
topLeft
+
const
Offset
(
unit
,
unit
),
const
Offset
(
delta
,
0.0
));
}
testWidgets
(
'Can change value using CupertinoSlider'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
example
.
MyApp
(),
);
// Check for the initial slider value.
expect
(
find
.
text
(
'0.0'
),
findsOneWidget
);
await
_dragSlider
(
tester
,
const
Key
(
'slider'
));
await
tester
.
pumpAndSettle
();
// Check for the updated slider value.
expect
(
find
.
text
(
'40.0'
),
findsOneWidget
);
});
}
packages/flutter/lib/src/cupertino/slider.dart
View file @
19a380ff
...
@@ -35,6 +35,12 @@ import 'thumb_painter.dart';
...
@@ -35,6 +35,12 @@ import 'thumb_painter.dart';
/// that use a slider will listen for the [onChanged] callback and rebuild the
/// that use a slider will listen for the [onChanged] callback and rebuild the
/// slider with a new [value] to update the visual appearance of the slider.
/// slider with a new [value] to update the visual appearance of the slider.
///
///
/// {@tool dartpad}
/// This example shows how to show the current slider value as it changes.
///
/// ** See code in examples/api/lib/cupertino/slider/cupertino_slider.0.dart **
/// {@end-tool}
///
/// See also:
/// See also:
///
///
/// * <https://developer.apple.com/ios/human-interface-guidelines/controls/sliders/>
/// * <https://developer.apple.com/ios/human-interface-guidelines/controls/sliders/>
...
...
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