flutter 计数器
2019-10-09 本文已影响0人
CaptainRoy

import 'package:flutter/material.dart';
main(List<String> args) {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("计数器"),
),
body: HomeBody(),
),
);
}
}
class HomeBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
print("HomeBody的build方法");
return MyCounterWidget();
}
}
class MyCounterWidget extends StatefulWidget {
MyCounterWidget() {
print("执行MyCounterWidget的构造方法");
}
@override
State<StatefulWidget> createState() {
// TODO: implement createState
print("执行MyCounterWidget的createState方法");
return MyCounterState();
}
}
class MyCounterState extends State<MyCounterWidget> {
int counter = 0;
MyCounterState() {
print("执行MyCounterState的构造方法");
}
@override
void initState() {
// TODO: implement initState
super.initState();
print("执行MyCounterState的init方法");
}
@override
void didChangeDependencies() {
// TODO: implement didChangeDependencies
super.didChangeDependencies();
print("执行MyCounterState的didChangeDependencies方法");
}
@override
Widget build(BuildContext context) {
print("执行MyCounterState的build方法");
// TODO: implement build
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
color: Colors.red,
child: Text("清零", style: TextStyle(fontSize: 18,color: Colors.white),),
onPressed: () {
setState(() {
counter = 0;
});
},
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
color: Colors.blue,
child: Text("+1",style: TextStyle(fontSize: 18,color: Colors.white),),
onPressed: () {
setState(() {
counter++;
});
},
),
RaisedButton(
color: Colors.orange,
child: Text("-1",style: TextStyle(fontSize: 18,color: Colors.white),),
onPressed: () {
setState(() {
counter--;
});
},
),
],
),
Text("当前计数: $counter",style: TextStyle(fontSize: 30),),
],
)
);
}
@override
void didUpdateWidget(MyCounterWidget oldWidget) {
// TODO: implement didUpdateWidget
super.didUpdateWidget(oldWidget);
print("执行MyCounterState的didUpdateWidget方法");
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
print("执行MyCounterState的dispose的方法");
}
}