//启动页面
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
//项目首页
import 'package:firstflutter/base/Tabs.dart';
class LaunchPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return LaunchPageWidget();
}
}
class LaunchPageWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() => LaunchState();
}
class LaunchState extends State<LaunchPageWidget> {
final String launchImage =
"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1093264713,2279663012&fm=26&gp=0.jpg";
int _countdown = 10;
late Timer _countdownTimer;
@override
void initState() {
super.initState();
_startRecordTime();
print('初始化启动页面');
}
@override
void dispose() {
super.dispose();
print('启动页面结束');
if (_countdownTimer != null && _countdownTimer.isActive) {
_countdownTimer.cancel();
}
}
void _startRecordTime() {
_countdownTimer = Timer.periodic(Duration(seconds: 1), (timer) {
setState(() {
if (_countdown <= 1) {
// Navigator.of(context).pushNamed("/demo1");
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) {
//项目首页
return Tabs();
}));
_countdownTimer.cancel();
// _countdownTimer = null;
} else {
_countdown -= 1;
}
});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark(),
home: Scaffold(
body: Stack(
fit: StackFit.expand,
children: <Widget>[
Image.network(launchImage, fit: BoxFit.fill),
Positioned(
top: 30,
right: 30,
child: GestureDetector(
onTap: (){
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) {
return Tabs();
}));
if (_countdownTimer != null && _countdownTimer.isActive) {
_countdownTimer.cancel();
}
},
child: Container(
padding: EdgeInsets.fromLTRB(5, 2, 5, 2),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.black12,
),
child: RichText(
text: TextSpan(children: <TextSpan>[
TextSpan(
text: '$_countdown',
style: TextStyle(
fontSize: 18,
color: Colors.blue,
)),
TextSpan(
text: '跳过',
style: TextStyle(
fontSize: 18,
color: Colors.red,
)),
]),
),
),
),
)
],
),
),
);
}
}
Flutter中Text点击事件
https://blog.csdn.net/honeylife/article/details/93200789
Flutter 中Text 的点击事件
大家看Text的源码,是没有点击事件的,那么,如果想添加点击事件怎么写呢,来看我的。
1、首先把Text放在一个容器里。比如Container中,
2、在Container的child中new new GestureDetector() ,你会发现GestureDetector 就有一个属性onTap ,你可以在onTap中定义。
3、什么,你想把方法抽离出去,OK ,明白了,那就得这么写了。
class RightView extends StatelessWidget {
String title;
VoidCallback rightClick;
RightView({this.title, this.rightClick});
@override
Widget build(BuildContext context) {
var containView;
if (title != Null) {
containView = new Container(
alignment: Alignment.center,
padding: EdgeInsets.all(10.0),
child: GestureDetector(
child: Text(
this.title,
style: TextStyle(color: Colors.white, fontSize: 18.0),
),
onTap: this.rightClick,
),
);
} else {
containView = Text("");
}
return containView;
}
}
那么,问题来了,怎么用呢。
new RightView(
title: "数据",
rightClick: () {
print("点我干什么");
},
);
就得这么处理。
————————————————
版权声明:本文为CSDN博主「honeylife」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/honeylife/article/details/93200789