繁体   English   中英

在颤动上显示正在运行的时钟

Show running clock on flutter

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想知道是否有任何方法可以在 dart 中显示实时时钟? 日期和时间(例如 11/14/2018 19:34)和时间将继续运行。

时间可以从设备本身中获取。

3 个回复

下面使用intl插件将时间格式化为MM/dd/yyyy hh:mm:ss 确保更新您的pubspec.yaml

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Time Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Time Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _timeString;

  @override
  void initState() {
    _timeString = _formatDateTime(DateTime.now());
    Timer.periodic(Duration(seconds: 1), (Timer t) => _getTime());
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Text(_timeString),
      ),
    );
  }

  void _getTime() {
    final DateTime now = DateTime.now();
    final String formattedDateTime = _formatDateTime(now);
    setState(() {
      _timeString = formattedDateTime;
    });
  }

  String _formatDateTime(DateTime dateTime) {
    return DateFormat('MM/dd/yyyy hh:mm:ss').format(dateTime);
  }
}

最简单的解决方案:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

class Clock extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: StreamBuilder(
        stream: Stream.periodic(const Duration(seconds: 1)),
        builder: (context, snapshot) {
          return Center(
            child: Text(
              DateFormat('MM/dd/yyyy hh:mm:ss').format(DateTime.now()),
            ),
          );
        },
      ),
    );
  }
}

这与 Albert 给出的代码相同,但如果您不想使用 intl 包,您可以对此代码进行以下更改:

import 'package:flutter/material.dart';
import 'dart:async';

void main () => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(primarySwatch: Colors.red),
      home: FlutterTimeDemo(),
    );
  }
}

class FlutterTimeDemo extends StatefulWidget{
  @override
  _FlutterTimeDemoState createState()=> _FlutterTimeDemoState();

}

class _FlutterTimeDemoState extends State<FlutterTimeDemo>
{
  String _timeString;

  @override
  void initState(){
    _timeString = "${DateTime.now().hour} : ${DateTime.now().minute} :${DateTime.now().second}";
    Timer.periodic(Duration(seconds:1), (Timer t)=>_getCurrentTime());
    super.initState();
  }

 @override
 Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Fluter Test'),),
      body:Center(
        child: Text(_timeString, style: TextStyle(fontSize: 30),),
      ),
    );
  }

  void _getCurrentTime()  {
    setState(() {
  _timeString = "${DateTime.now().hour} : ${DateTime.now().minute} :${DateTime.now().second}";
    });
  }
}
1 我如何有一个正在运行的时钟并同时接受输入?

如何在获取用户输入的同时运行时钟? 我只习惯在主循环内一次完成一项任务。 有人提到了异步,但我尝试过几次学习异步,但我就是不明白。 我没有任何代码可以显示,因为我什至不知道如何开始。 ...

2021-11-18 17:25:57 2 22   python
3 Tomcat正在运行,但没有页面显示

我刚刚开始为Ubuntu服务器设置tomcat。 我试图通过“ catalina.sh run”运行tomcat,它记录“ ” 我检查“ ps -ef | grep tomcat”,它返回“ ” “ netstat -ln | grep 8088”,它返回“ t ...

5 按月显示所有正在运行的实例

想知道是否可以每月显示所有正在运行的实例。 我知道以下命令可以列出所有区域中所有正在运行的实例,但是我不确定如何按月份进行过滤:aws ec2 describe-instances --query'Reservations [ ] .Instances [ ]。[InstanceId]'- ...

6 Linux显示当前正在运行的进程

显示当前正在运行的进程的命令是什么,显示PPID的选项是什么? 我认为可能是: 职位-p 职位-pl 两者都没有。 有什么提示吗? ...

2013-11-13 04:41:49 2 943   linux
7 syslog显示cronjob正在运行

我创建了一个脚本来删除旧文件,并将其放入crontab中,每2分钟运行一次。 我可以看到syslog显示cronjob正在运行,但是文件并未删除。 我可以手动运行该脚本,它可以正常运行。 而且我还使用了“ sudo crontab -e”,以便为cronjob授予root权限。 有什么想 ...

8 如何显示正在运行的活动的通知?

我正在使用Android Wear SDK构建Wear + Mobile应用。 当用户说出文字时,该文字会传递到移动应用程序,该应用程序会进行数据库查询,并将结果返回给Wear应用程序。 如果我使用消息,它运行良好,但是我希望移动应用程序为磨损应用程序创建通知。 如果我创建了一条通知,则 ...

9 Windows API将显示正在运行的进程

我想创建一个类似迷你任务管理器的工具。 我想显示所有正在运行的进程,cpu和内存使用情况。 谁能告诉我相关的api,我可以使用它。 到相关网页的任何链接将不胜感激。 (我想转储正在运行的进程,cpu和内存的所有统计信息。)预先感谢。 ...

10 Asynctask状态始终显示正在运行

我想在完成第一个任务后执行asynctask。 但是在打印第一个任务的状态时,它始终显示“正在运行”。如果同时执行两个任务,则只会执行较小的任务。 我都在活动oncreate方法中运行。 这是我的代码示例 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM