-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathpadding_selector.dart
90 lines (84 loc) · 2.01 KB
/
padding_selector.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
///
/// Created by NieBin on 18-12-4
/// Github: https://github.com/nb312
/// Email: niebin312@gmail.com
///
import "package:flutter/material.dart";
import "../constant/size_const.dart";
import "../view/view_selector.dart";
const _LEFT_TITLE = "padding left";
const _RIGHT_TITLE = "padding right";
const _TOP_TITLE = "padding top";
const _BOTTOM_TITLE = "padding bottom";
const PADDING_VALUES = [
"0",
"5",
"10",
"15",
"20",
"25",
"30",
"35",
"40",
"45",
"50"
];
class PaddingSelector extends StatefulWidget {
PaddingSelector(
{Key key,
this.clickLeft,
this.clickRight,
this.clickTop,
this.clickBottom,
this.mainColor = Colors.white})
: super(key: key);
final Color mainColor;
final ValueChanged<int> clickLeft;
final ValueChanged<int> clickRight;
final ValueChanged<int> clickTop;
final ValueChanged<int> clickBottom;
@override
_PaddingState createState() => _PaddingState();
}
class _PaddingState extends State<PaddingSelector> {
Widget _selector(String title, List<String> values, ValueChanged<int> click) {
return ViewSelector(
title: title,
values: values,
mainColor: widget.mainColor,
onClick: click,
);
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Row(
children: <Widget>[
Expanded(
flex: 1,
child: _selector(_LEFT_TITLE, PADDING_VALUES, widget.clickLeft),
),
Expanded(
flex: 1,
child: _selector(_RIGHT_TITLE, PADDING_VALUES, widget.clickRight),
)
],
),
Row(
children: <Widget>[
Expanded(
flex: 1,
child: _selector(_TOP_TITLE, PADDING_VALUES, widget.clickTop),
),
Expanded(
flex: 1,
child:
_selector(_BOTTOM_TITLE, PADDING_VALUES, widget.clickBottom),
),
],
),
],
);
}
}