Skip to content

Commit 1345645

Browse files
author
Vivek Chib
committed
added elevation to control widgets
1 parent b532a69 commit 1345645

File tree

6 files changed

+163
-236
lines changed

6 files changed

+163
-236
lines changed

lib/utils/curves_enum.dart

Lines changed: 0 additions & 118 deletions
This file was deleted.

lib/views/home_page.dart

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_animate/flutter_animate.dart';
33
import 'package:flutter_curve_visualizer/model/curve_model.dart';
44
import 'package:flutter_curve_visualizer/views/widgets/screen_mode.dart';
5-
import 'package:flutter_curve_visualizer/utils/curves_enum.dart';
65
import 'package:flutter_curve_visualizer/views/widgets/appbar.dart';
76
import 'package:flutter_curve_visualizer/views/widgets/dropdown_menu.dart';
87
import 'package:flutter_curve_visualizer/views/widgets/graph/graph_widget.dart';
8+
import 'package:flutter_curve_visualizer/views/widgets/time_slider.dart';
99
import 'package:provider/provider.dart';
1010
import 'widgets/animated_box/animated_boxes.dart';
1111
import 'widgets/animated_box/provider.dart';
@@ -85,10 +85,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
8585
setState(() {
8686
selectedCategory = category;
8787
selectedCurve = CurveModel.list[category]!.first;
88-
curveAnimation = CurvedAnimation(
89-
parent: controller,
90-
curve: selectedCurve.curve,
91-
);
88+
curveAnimation.curve = selectedCurve.curve;
9289
});
9390
}
9491

@@ -201,7 +198,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
201198
child: DropdownMenuWidget<String>(
202199
title: "Category",
203200
value: selectedCategory,
204-
items: CurvesEnum.list.keys.toList(),
201+
items: CurveModel.list.keys.toList(),
205202
onChanged: updateCategory,
206203
),
207204
),
@@ -223,27 +220,9 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
223220
),
224221

225222
// Animation time
226-
Container(
227-
padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0),
228-
decoration: BoxDecoration(
229-
color: Theme.of(context).colorScheme.onPrimaryFixed,
230-
borderRadius: BorderRadius.circular(10),
231-
),
232-
child: Column(
233-
crossAxisAlignment: CrossAxisAlignment.start,
234-
children: [
235-
Text(
236-
"Time: ${animationTime}s",
237-
style: Theme.of(context).textTheme.titleSmall,
238-
),
239-
Slider(
240-
value: animationTime.toDouble(),
241-
min: 1.0,
242-
max: 10.0,
243-
onChanged: updateAnimationTime,
244-
),
245-
],
246-
),
223+
TimeSlider(
224+
animationTime: animationTime,
225+
onChanged: updateAnimationTime,
247226
),
248227

249228
// TODO : TextField have some issues with current flutter version, waiting it to be fixed

lib/views/widgets/animated_box/animated_box_widget.dart

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,36 @@ class AnimatedBoxWidget extends StatelessWidget {
2727
child: SizedBox.square(dimension: boxSize),
2828
),
2929
builder: (context, child) {
30-
return ColoredBox(
31-
color: theme.onPrimaryFixed,
32-
child: Align(
33-
alignment: Alignment.center,
34-
child: switch (animationType) {
35-
/// Translate x
36-
AnimationType.translateX =>
37-
_buildTransformX(constraints, boxSize, child),
38-
39-
/// Translate Y
40-
AnimationType.translateY =>
41-
_buildTransformY(constraints, boxSize, child),
42-
43-
/// Rotate
44-
AnimationType.rotate => _buildRotate(child),
45-
46-
/// Scale
47-
AnimationType.scale => _buildScale(child),
48-
49-
/// Fade
50-
AnimationType.fade => _buildFade(child),
51-
52-
/// Flip
53-
AnimationType.flip => _buildFlip(child),
54-
},
30+
return PhysicalModel(
31+
color: Colors.transparent,
32+
shadowColor: theme.shadow,
33+
elevation: 1.0,
34+
child: ColoredBox(
35+
color: theme.onPrimaryFixed,
36+
child: Align(
37+
alignment: Alignment.center,
38+
child: switch (animationType) {
39+
/// Translate x
40+
AnimationType.translateX =>
41+
_buildTransformX(constraints, boxSize, child),
42+
43+
/// Translate Y
44+
AnimationType.translateY =>
45+
_buildTransformY(constraints, boxSize, child),
46+
47+
/// Rotate
48+
AnimationType.rotate => _buildRotate(child),
49+
50+
/// Scale
51+
AnimationType.scale => _buildScale(child),
52+
53+
/// Fade
54+
AnimationType.fade => _buildFade(child),
55+
56+
/// Flip
57+
AnimationType.flip => _buildFlip(child),
58+
},
59+
),
5560
),
5661
);
5762
},

lib/views/widgets/code_block.dart

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -39,46 +39,55 @@ class CodeBlock extends StatelessWidget {
3939
Color(0xff2bc542),
4040
];
4141

42-
return Container(
43-
padding: EdgeInsets.all(8.0),
44-
decoration: BoxDecoration(
45-
color: Theme.of(context).colorScheme.onPrimaryFixed,
46-
borderRadius: BorderRadius.circular(10),
47-
),
48-
child: Column(
49-
crossAxisAlignment: CrossAxisAlignment.start,
50-
mainAxisSize: MainAxisSize.min,
51-
spacing: spacing,
52-
children: [
53-
Align(
54-
alignment: Alignment.topCenter,
55-
child: Row(
56-
mainAxisSize: MainAxisSize.min,
57-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
58-
children: <Widget>[
59-
Wrap(
60-
spacing: 5,
61-
children: List.from(lightsColors).map((color) {
62-
return CircleAvatar(radius: radius, backgroundColor: color);
63-
}).toList(),
64-
),
65-
Spacer(),
66-
GestureDetector(
67-
onTap: () => copyCode(context, code),
68-
child: Icon(
69-
Icons.copy,
70-
color: Theme.of(context).colorScheme.onSurface,
71-
size: 16,
42+
final borderRadius = BorderRadius.circular(10);
43+
44+
return PhysicalModel(
45+
color: Colors.transparent,
46+
shadowColor: Theme.of(context).colorScheme.shadow,
47+
elevation: 1.0,
48+
borderRadius: borderRadius,
49+
child: Container(
50+
padding: EdgeInsets.all(8.0),
51+
decoration: BoxDecoration(
52+
color: Theme.of(context).colorScheme.onPrimaryFixed,
53+
borderRadius: borderRadius,
54+
),
55+
child: Column(
56+
crossAxisAlignment: CrossAxisAlignment.start,
57+
mainAxisSize: MainAxisSize.min,
58+
spacing: spacing,
59+
children: [
60+
Align(
61+
alignment: Alignment.topCenter,
62+
child: Row(
63+
mainAxisSize: MainAxisSize.min,
64+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
65+
children: <Widget>[
66+
Wrap(
67+
spacing: 5,
68+
children: List.from(lightsColors).map((color) {
69+
return CircleAvatar(
70+
radius: radius, backgroundColor: color);
71+
}).toList(),
7272
),
73-
)
74-
],
73+
Spacer(),
74+
GestureDetector(
75+
onTap: () => copyCode(context, code),
76+
child: Icon(
77+
Icons.copy,
78+
color: Theme.of(context).colorScheme.onSurface,
79+
size: 16,
80+
),
81+
)
82+
],
83+
),
84+
),
85+
Padding(
86+
padding: const EdgeInsets.all(8.0),
87+
child: Text(code, style: codeStyle),
7588
),
76-
),
77-
Padding(
78-
padding: const EdgeInsets.all(8.0),
79-
child: Text(code, style: codeStyle),
80-
),
81-
],
89+
],
90+
),
8291
),
8392
);
8493
}

0 commit comments

Comments
 (0)