1
+ import 'package:fluent_date_picker/fluent_date_picker.dart' ;
1
2
import 'package:flutter/material.dart' ;
2
3
3
4
void main () {
@@ -7,109 +8,42 @@ void main() {
7
8
class MyApp extends StatelessWidget {
8
9
const MyApp ({Key ? key}) : super (key: key);
9
10
10
- // This widget is the root of your application.
11
11
@override
12
12
Widget build (BuildContext context) {
13
13
return MaterialApp (
14
14
title: 'Flutter Demo' ,
15
15
theme: ThemeData (
16
- // This is the theme of your application.
17
- //
18
- // Try running your application with "flutter run". You'll see the
19
- // application has a blue toolbar. Then, without quitting the app, try
20
- // changing the primarySwatch below to Colors.green and then invoke
21
- // "hot reload" (press "r" in the console where you ran "flutter run",
22
- // or simply save your changes to "hot reload" in a Flutter IDE).
23
- // Notice that the counter didn't reset back to zero; the application
24
- // is not restarted.
25
16
primarySwatch: Colors .blue,
26
17
),
27
- home: const MyHomePage (title: 'Flutter Demo Home Page' ),
18
+ home: Scaffold (
19
+ appBar: AppBar (
20
+ title: const Text ('Fluent Datepicker' ),
21
+ ),
22
+ body: const TestPage (),
23
+ ),
28
24
);
29
25
}
30
26
}
31
27
32
- class MyHomePage extends StatefulWidget {
33
- const MyHomePage ({Key ? key, required this .title}) : super (key: key);
34
-
35
- // This widget is the home page of your application. It is stateful, meaning
36
- // that it has a State object (defined below) that contains fields that affect
37
- // how it looks.
38
-
39
- // This class is the configuration for the state. It holds the values (in this
40
- // case the title) provided by the parent (in this case the App widget) and
41
- // used by the build method of the State. Fields in a Widget subclass are
42
- // always marked "final".
43
-
44
- final String title;
28
+ class TestPage extends StatefulWidget {
29
+ const TestPage ({Key ? key}) : super (key: key);
45
30
46
31
@override
47
- State < MyHomePage > createState () => _MyHomePageState ();
32
+ _TestPageState createState () => _TestPageState ();
48
33
}
49
34
50
- class _MyHomePageState extends State <MyHomePage > {
51
- int _counter = 0 ;
52
-
53
- void _incrementCounter () {
54
- setState (() {
55
- // This call to setState tells the Flutter framework that something has
56
- // changed in this State, which causes it to rerun the build method below
57
- // so that the display can reflect the updated values. If we changed
58
- // _counter without calling setState(), then the build method would not be
59
- // called again, and so nothing would appear to happen.
60
- _counter++ ;
61
- });
62
- }
35
+ class _TestPageState extends State <TestPage > {
36
+ var _selectedDate = DateTime .now ();
63
37
64
38
@override
65
39
Widget build (BuildContext context) {
66
- // This method is rerun every time setState is called, for instance as done
67
- // by the _incrementCounter method above.
68
- //
69
- // The Flutter framework has been optimized to make rerunning build methods
70
- // fast, so that you can just rebuild anything that needs updating rather
71
- // than having to individually change instances of widgets.
72
- return Scaffold (
73
- appBar: AppBar (
74
- // Here we take the value from the MyHomePage object that was created by
75
- // the App.build method, and use it to set our appbar title.
76
- title: Text (widget.title),
77
- ),
78
- body: Center (
79
- // Center is a layout widget. It takes a single child and positions it
80
- // in the middle of the parent.
81
- child: Column (
82
- // Column is also a layout widget. It takes a list of children and
83
- // arranges them vertically. By default, it sizes itself to fit its
84
- // children horizontally, and tries to be as tall as its parent.
85
- //
86
- // Invoke "debug painting" (press "p" in the console, choose the
87
- // "Toggle Debug Paint" action from the Flutter Inspector in Android
88
- // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
89
- // to see the wireframe for each widget.
90
- //
91
- // Column has various properties to control how it sizes itself and
92
- // how it positions its children. Here we use mainAxisAlignment to
93
- // center the children vertically; the main axis here is the vertical
94
- // axis because Columns are vertical (the cross axis would be
95
- // horizontal).
96
- mainAxisAlignment: MainAxisAlignment .center,
97
- children: < Widget > [
98
- const Text (
99
- 'You have pushed the button this many times:' ,
100
- ),
101
- Text (
102
- '$_counter ' ,
103
- style: Theme .of (context).textTheme.headline4,
104
- ),
105
- ],
106
- ),
40
+ return Center (
41
+ child: FluentDatePicker (
42
+ selected: _selectedDate,
43
+ onChanged: (value) => setState (() {
44
+ _selectedDate = value;
45
+ }),
107
46
),
108
- floatingActionButton: FloatingActionButton (
109
- onPressed: _incrementCounter,
110
- tooltip: 'Increment' ,
111
- child: const Icon (Icons .add),
112
- ), // This trailing comma makes auto-formatting nicer for build methods.
113
47
);
114
48
}
115
49
}
0 commit comments