flutter每隔一段时间刷新一次,及定时器的使用方法
在Flutter中,可以使用Timer
类来实现定时刷新。以下是一个简单的例子,展示了如何每隔一定时间自动刷新UI。
import 'dart:async';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Timer _timer;
int _counter = 0;
@override
void initState() {
super.initState();
// 初始化计时器,每2秒刷新一次
_timer = Timer.periodic(Duration(seconds: 2), (timer) {
setState(() {
_counter++;
});
});
}
@override
void dispose() {
// 取消计时器,防止内存泄露
_timer?.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('定时刷新示例')),
body: Center(
child: Text(
'点击次数: $_counter',
style: Theme.of(context).textTheme.headline4,
),
),
);
}
}
在这个例子中,_HomePageState
类负责创建和销毁计时器,以及更新界面上的点击次数。计时器每2秒触发一次,通过setState
方法更新界面。当HomePage
的实例被销毁时,计时器也会被取消,以防止内存泄露。
评论已关闭