Skip to content

Commit 43b0854

Browse files
committed
created demo app
1 parent 5fcc3d5 commit 43b0854

File tree

4 files changed

+195
-133
lines changed

4 files changed

+195
-133
lines changed

example/lib/main.dart

+134-74
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,171 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_switch/flutter_switch.dart';
23

34
void main() => runApp(MyApp());
45

56
class MyApp extends StatelessWidget {
6-
// This widget is the root of your application.
77
@override
88
Widget build(BuildContext context) {
99
return MaterialApp(
10-
title: 'Flutter Demo',
1110
theme: ThemeData(
12-
// This is the theme of your application.
13-
//
14-
// Try running your application with "flutter run". You'll see the
15-
// application has a blue toolbar. Then, without quitting the app, try
16-
// changing the primarySwatch below to Colors.green and then invoke
17-
// "hot reload" (press "r" in the console where you ran "flutter run",
18-
// or simply save your changes to "hot reload" in a Flutter IDE).
19-
// Notice that the counter didn't reset back to zero; the application
20-
// is not restarted.
2111
primarySwatch: Colors.blue,
2212
),
23-
home: MyHomePage(title: 'Flutter Demo Home Page'),
13+
home: MyHomePage(),
2414
);
2515
}
2616
}
2717

2818
class MyHomePage extends StatefulWidget {
29-
MyHomePage({Key key, this.title}) : super(key: key);
30-
31-
// This widget is the home page of your application. It is stateful, meaning
32-
// that it has a State object (defined below) that contains fields that affect
33-
// how it looks.
34-
35-
// This class is the configuration for the state. It holds the values (in this
36-
// case the title) provided by the parent (in this case the App widget) and
37-
// used by the build method of the State. Fields in a Widget subclass are
38-
// always marked "final".
39-
40-
final String title;
41-
4219
@override
4320
_MyHomePageState createState() => _MyHomePageState();
4421
}
4522

4623
class _MyHomePageState extends State<MyHomePage> {
47-
int _counter = 0;
48-
49-
void _incrementCounter() {
50-
setState(() {
51-
// This call to setState tells the Flutter framework that something has
52-
// changed in this State, which causes it to rerun the build method below
53-
// so that the display can reflect the updated values. If we changed
54-
// _counter without calling setState(), then the build method would not be
55-
// called again, and so nothing would appear to happen.
56-
_counter++;
57-
});
58-
}
24+
bool status1 = false;
25+
bool status2 = false;
26+
bool status3 = false;
27+
bool status4 = false;
28+
bool status5 = false;
5929

6030
@override
6131
Widget build(BuildContext context) {
62-
// This method is rerun every time setState is called, for instance as done
63-
// by the _incrementCounter method above.
64-
//
65-
// The Flutter framework has been optimized to make rerunning build methods
66-
// fast, so that you can just rebuild anything that needs updating rather
67-
// than having to individually change instances of widgets.
6832
return Scaffold(
6933
appBar: AppBar(
70-
// Here we take the value from the MyHomePage object that was created by
71-
// the App.build method, and use it to set our appbar title.
72-
title: Text(widget.title),
34+
title: Text("FlutterSwitch Demo"),
7335
),
74-
body: Center(
75-
// Center is a layout widget. It takes a single child and positions it
76-
// in the middle of the parent.
36+
body: Container(
37+
padding: EdgeInsets.all(10.0),
7738
child: Column(
78-
// Column is also a layout widget. It takes a list of children and
79-
// arranges them vertically. By default, it sizes itself to fit its
80-
// children horizontally, and tries to be as tall as its parent.
81-
//
82-
// Invoke "debug painting" (press "p" in the console, choose the
83-
// "Toggle Debug Paint" action from the Flutter Inspector in Android
84-
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
85-
// to see the wireframe for each widget.
86-
//
87-
// Column has various properties to control how it sizes itself and
88-
// how it positions its children. Here we use mainAxisAlignment to
89-
// center the children vertically; the main axis here is the vertical
90-
// axis because Columns are vertical (the cross axis would be
91-
// horizontal).
92-
mainAxisAlignment: MainAxisAlignment.center,
39+
crossAxisAlignment: CrossAxisAlignment.start,
9340
children: <Widget>[
94-
Text(
95-
'You have pushed the button this many times:',
41+
Text("Default"),
42+
SizedBox(height: 10.0),
43+
Row(
44+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
45+
children: <Widget>[
46+
FlutterSwitch(
47+
value: status1,
48+
onToggle: (val) {
49+
setState(() {
50+
status1 = val;
51+
});
52+
},
53+
),
54+
Container(
55+
alignment: Alignment.centerRight,
56+
child: Text(
57+
"Value: $status1",
58+
),
59+
),
60+
],
61+
),
62+
SizedBox(height: 20.0),
63+
Text("Custom Colors"),
64+
SizedBox(height: 10.0),
65+
Row(
66+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
67+
children: <Widget>[
68+
FlutterSwitch(
69+
activeColor: Colors.red,
70+
inactiveColor: Colors.red[200],
71+
value: status2,
72+
onToggle: (val) {
73+
setState(() {
74+
status2 = val;
75+
});
76+
},
77+
),
78+
Container(
79+
alignment: Alignment.centerRight,
80+
child: Text(
81+
"Value: $status2",
82+
),
83+
),
84+
],
85+
),
86+
SizedBox(height: 20.0),
87+
Text("With 'On' and 'Off' text and custom text colors"),
88+
SizedBox(height: 10.0),
89+
Row(
90+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
91+
children: <Widget>[
92+
FlutterSwitch(
93+
showOnOff: true,
94+
activeTextColor: Colors.black,
95+
inactiveTextColor: Colors.blue[50],
96+
value: status3,
97+
onToggle: (val) {
98+
setState(() {
99+
status3 = val;
100+
});
101+
},
102+
),
103+
Container(
104+
alignment: Alignment.centerRight,
105+
child: Text(
106+
"Value: $status3",
107+
),
108+
),
109+
],
110+
),
111+
SizedBox(height: 20.0),
112+
Text("Custom size"),
113+
SizedBox(height: 10.0),
114+
Row(
115+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
116+
children: <Widget>[
117+
FlutterSwitch(
118+
width: 55.0,
119+
height: 25.0,
120+
valueFontSize: 12.0,
121+
toggleSize: 18.0,
122+
value: status4,
123+
onToggle: (val) {
124+
setState(() {
125+
status4 = val;
126+
});
127+
},
128+
),
129+
Container(
130+
alignment: Alignment.centerRight,
131+
child: Text(
132+
"Value: $status4",
133+
),
134+
),
135+
],
96136
),
97-
Text(
98-
'$_counter',
99-
style: Theme.of(context).textTheme.display1,
137+
SizedBox(height: 20.0),
138+
Text("Custom border radius and padding"),
139+
SizedBox(height: 10.0),
140+
Row(
141+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
142+
children: <Widget>[
143+
FlutterSwitch(
144+
width: 125.0,
145+
height: 55.0,
146+
valueFontSize: 25.0,
147+
toggleSize: 45.0,
148+
value: status5,
149+
borderRadius: 30.0,
150+
padding: 8.0,
151+
showOnOff: true,
152+
onToggle: (val) {
153+
setState(() {
154+
status5 = val;
155+
});
156+
},
157+
),
158+
Container(
159+
alignment: Alignment.centerRight,
160+
child: Text(
161+
"Value: $status5",
162+
),
163+
),
164+
],
100165
),
101166
],
102167
),
103168
),
104-
floatingActionButton: FloatingActionButton(
105-
onPressed: _incrementCounter,
106-
tooltip: 'Increment',
107-
child: Icon(Icons.add),
108-
), // This trailing comma makes auto-formatting nicer for build methods.
109169
);
110170
}
111171
}

example/pubspec.lock

+7
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ packages:
6969
description: flutter
7070
source: sdk
7171
version: "0.0.0"
72+
flutter_switch:
73+
dependency: "direct main"
74+
description:
75+
path: ".."
76+
relative: true
77+
source: path
78+
version: "0.0.1"
7279
flutter_test:
7380
dependency: "direct dev"
7481
description: flutter

example/pubspec.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ dependencies:
2323
# The following adds the Cupertino Icons font to your application.
2424
# Use with the CupertinoIcons class for iOS style icons.
2525
cupertino_icons: ^0.1.2
26+
flutter_switch:
27+
path: ../
2628

2729
dev_dependencies:
2830
flutter_test:

0 commit comments

Comments
 (0)