import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_swiper/flutter_swiper.dart';
import 'package:intl/intl.dart';
class App extends StatefulWidget {
@override
createState() {
print("创建state");
return AppState();
}
}
class AppState extends State<App> {
DateTime now = DateTime.now();
int count = 90;
String name = "测试";
@override
void initState() {
print("初始化state");
super.initState();
}
@override
void didChangeDependencies() {
print("state发生改变了");
super.didChangeDependencies();
}
@override
void didUpdateWidget(covariant App oldWidget) {
count++;
super.didUpdateWidget(oldWidget);
}
@override
void deactivate() {
print("deactivate");
super.deactivate();
}
@override
void dispose() {
print("永久移除组件");
super.dispose();
}
@override
void reassemble() {
print("reassemble");
super.reassemble();
}
void changeName() {
setState(() {
print("设置state");
this.name = "flutter";
});
}
@override
Widget build(BuildContext context) {
// getCurrentTime("dhfg");
return Scaffold(
appBar: AppBar(
title: Text(
"下午好!小何",
style: TextStyle(
color: Colors.white,
),
),
),
body: Container(
child: Column(
children: [
Container(
decoration: BoxDecoration(
color: Colors.red,
border: Border.all(
color: Colors.red,
width: 0.3,
),
),
height: 200,
child: new Swiper(
itemBuilder: (BuildContext context, int index) {
return new Image.network(
"https://tse3-mm.cn.bing.net/th/id/OIP.llTGkZjpc-7YxclmweQw-QHaFF?pid=Api&rs=1",
fit: BoxFit.fitWidth,
);
},
itemCount: 3,
// pagination: new SwiperPagination(),
autoplay: true,
// control: new SwiperControl(),
),
),
Container(
padding: EdgeInsets.all(40),
decoration: BoxDecoration(
border: Border.all(
color: Colors.red,
width: 0.2,
),
// borderRadius: BorderRadius.only(topLeft: 12, topRight: 12),
),
child: FlatButton(
child: Text("$name $count"),
onPressed: () => {
this.changeName(),
},
),
),
Container(
child: Sub(),
),
],
),
),
);
}
}
class Sub extends StatefulWidget {
@override
createState() {
return SubState();
}
}
class SubState extends State<Sub> {
String name = "新测试";
String currentTieStr;
@override
void initState() {
print("sub init state");
super.initState();
this.currentTieStr = this.getcurrentTime();
refreshTimeStr();
}
String getcurrentTime() {
DateTime now = DateTime.now();
var nowTime = DateFormat("yy-MM-dd hh:mm:ss");
return nowTime.format(now);
}
void refreshTimeStr() {
const period = Duration(milliseconds: 900);
Timer.periodic(period, (timer) {
setState(() {
this.currentTieStr = getcurrentTime();
});
});
}
@override
void didChangeDependencies() {
print("sub did change dependencies");
super.didChangeDependencies();
}
@override
void didUpdateWidget(covariant Sub oldWidget) {
print("sub did update widget");
super.didUpdateWidget(oldWidget);
}
@override
void deactivate() {
print("sub dispose");
super.deactivate();
}
@override
void reassemble() {
print("sub reassemble");
super.reassemble();
}
@override
Widget build(BuildContext context) {
print(this.currentTieStr);
return Text(this.currentTieStr);
}
}