| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import 'dart:async';
- import 'package:flutter/cupertino.dart';
- import '../utils/common_util.dart';
- class RelativeTimeText extends StatefulWidget {
- final int? timestamp;
- final Duration updateInterval;
- final TextStyle? style;
- const RelativeTimeText({
- super.key,
- required this.timestamp,
- this.updateInterval = const Duration(minutes: 1),
- this.style,
- });
- @override
- State<RelativeTimeText> createState() => _RelativeTimeTextState();
- }
- class _RelativeTimeTextState extends State<RelativeTimeText> {
- late Timer _timer;
- @override
- void initState() {
- super.initState();
- _timer = Timer.periodic(widget.updateInterval, (_) => _updateTime());
- }
- void _updateTime() {
- if (mounted) {
- setState(() {});
- }
- }
- @override
- void dispose() {
- _timer.cancel();
- super.dispose();
- }
- @override
- Widget build(BuildContext context) {
- return Text(time2TimeDesc(widget.timestamp), style: widget.style);
- }
- }
|