Skip to content

Commit 4681e3a

Browse files
committed
Setup home page
1 parent f2bb487 commit 4681e3a

File tree

4 files changed

+32
-107
lines changed

4 files changed

+32
-107
lines changed

android/gradle.properties

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
org.gradle.jvmargs=-Xmx1536M
22
android.useAndroidX=true
33
android.enableJetifier=true
4+
android.enableR8=true

lib/home.dart

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import 'package:flutter/material.dart';
2+
3+
class Home extends StatelessWidget {
4+
@override
5+
Widget build(BuildContext context) {
6+
return Scaffold(
7+
appBar: _appBar(),
8+
body: _body(),
9+
);
10+
}
11+
12+
AppBar _appBar() {
13+
return AppBar(
14+
title: const Text("D Tree Exercise"),
15+
);
16+
}
17+
18+
Widget _body() {
19+
return Container(
20+
child: Center(
21+
child: const Text("Home"),
22+
),
23+
);
24+
}
25+
}

lib/main.dart

+5-106
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,16 @@
1+
import 'package:exercise/home.dart';
12
import 'package:flutter/material.dart';
23

34
void main() {
4-
runApp(MyApp());
5+
runApp(App());
56
}
67

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

test/widget_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import 'package:exercise/main.dart';
1313
void main() {
1414
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
1515
// Build our app and trigger a frame.
16-
await tester.pumpWidget(MyApp());
16+
await tester.pumpWidget(App());
1717

1818
// Verify that our counter starts at 0.
1919
expect(find.text('0'), findsOneWidget);

0 commit comments

Comments
 (0)