Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在文本窗口小部件中输入当前日期?_Flutter_Dart - Fatal编程技术网

Flutter 如何在文本窗口小部件中输入当前日期?

Flutter 如何在文本窗口小部件中输入当前日期?,flutter,dart,Flutter,Dart,大家好我是颤振的初学者 我正在使用dart和Flatter构建一个报警应用程序,但当我尝试在文本小部件中输入当前日期时,出现了一个错误 A non-null String must be provided to a Text widget. Failed assertion: line 370 pos 10: 'data != null' 这是我的密码 class _MyHomePageState extends State<MyHomePage> { String gree

大家好我是颤振的初学者

我正在使用dart和Flatter构建一个报警应用程序,但当我尝试在文本小部件中输入当前日期时,出现了一个错误

A non-null String must be provided to a Text widget.

Failed assertion: line 370 pos 10: 'data != null'
这是我的密码

class _MyHomePageState extends State<MyHomePage> {


String greetingMessage() {
var timeNow = DateTime.now().hour;

if (timeNow <= 11.59) {
  return 'Good Morning';
} else if (timeNow > 12 && timeNow <= 16) {
  return 'Good Afternoon';
} else if (timeNow > 16 && timeNow < 20) {
  return 'Good Evening';
} else {
  return 'Good Night';
}

String finalDate = '';



getCurrentDate() {
var date = DateTime.now().toString();

var dateParse = DateTime.parse(date);

var formattedDate = "${dateParse.day}-${dateParse.month}-${dateParse.year}";

setState(() {
  finalDate = formattedDate.toString();
});



Padding(
                padding: const EdgeInsets.only(top: 30, bottom: 18),
                child: Text(
                  greetingMessage(),
                  style:
                      TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
                ),
              ),
              Text(
                getCurrentDate(),
                style: TextStyle(fontSize: 18, color: Colors.black54),
class\u MyHomePageState扩展状态{
字符串greetingMessage(){
var timeNow=DateTime.now().hour;
如果(timeNow 12&&timeNow 16&&timeNow<20){
返回“晚上好”;
}否则{
返回“晚安”;
}
字符串finalDate='';
getCurrentDate(){
var date=DateTime.now().toString();
var dateParse=DateTime.parse(日期);
var formattedDate=“${dateParse.day}-${dateParse.month}-${dateParse.year}”;
设置状态(){
finalDate=formattedDate.toString();
});
填充物(
填充:仅限常量边集(顶部:30,底部:18),
子:文本(
greetingMessage(),
风格:
TextStyle(fontSize:25,fontWeight:fontWeight.bold),
),
),
正文(
getCurrentDate(),
样式:TextStyle(字体大小:18,颜色:Colors.black54),
如果有人能帮助我,我感谢你的努力
谢谢。

要在
文本
小部件中显示
日期
,您需要从
getCurrentDate()
方法返回
日期
,同时访问
文本
小部件中的
getCurrentDate()
方法,否则它将返回
空值
,并显示错误

简单地说:只需在方法中添加return语句并返回格式化日期


您的代码没有格式化,并且您编写了填充文本字段小部件,但没有或可以垂直显示代码的小部件类型

以下是完整的工作代码:

import 'package:flutter/material.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(top: 30, bottom: 18),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            greetingMessage(),
            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
          ),
          Text(getCurrentDate(),
              style: TextStyle(fontSize: 18, color: Colors.cyan))
        ],
      ),
    );
  }

  String greetingMessage() {
    var timeNow = DateTime.now().hour;

    if (timeNow <= 11.59) {
      return 'Good Morning';
    } else if (timeNow > 12 && timeNow <= 16) {
      return 'Good Afternoon';
    } else if (timeNow > 16 && timeNow < 20) {
      return 'Good Evening';
    } else {
      return 'Good Night';
    }
  }

  String getCurrentDate() {
    var date = DateTime.now().toString();

    var dateParse = DateTime.parse(date);

    var formattedDate = "${dateParse.day}-${dateParse.month}-${dateParse.year}";
    return formattedDate.toString();
  }
}
导入“包装:颤振/材料.省道”;
最终颜色深蓝色=颜色。来自argb(255,18,32,47);
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主题:ThemeData.dark().copyWith(脚手架背景颜色:深蓝色),
debugShowCheckedModeBanner:false,
家:脚手架(
正文:中(
子项:MyWidget(),
),
),
);
}
}
类MyWidget扩展了无状态Widget{
@凌驾
小部件构建(构建上下文){
返回填充(
填充:仅限常量边集(顶部:30,底部:18),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
greetingMessage(),
样式:TextStyle(fontSize:25,fontWeight:fontWeight.bold),
),
文本(getCurrentDate(),
样式:TextStyle(字体大小:18,颜色:Colors.cyan))
],
),
);
}
字符串greetingMessage(){
var timeNow=DateTime.now().hour;
如果(timeNow 12&&timeNow 16&&timeNow<20){
返回“晚上好”;
}否则{
返回“晚安”;
}
}
字符串getCurrentDate(){
var date=DateTime.now().toString();
var dateParse=DateTime.parse(日期);
var formattedDate=“${dateParse.day}-${dateParse.month}-${dateParse.year}”;
返回formattedDate.toString();
}
}
输出:


谢谢。

你查过我的答案了吗?
import 'package:flutter/material.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(top: 30, bottom: 18),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            greetingMessage(),
            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
          ),
          Text(getCurrentDate(),
              style: TextStyle(fontSize: 18, color: Colors.cyan))
        ],
      ),
    );
  }

  String greetingMessage() {
    var timeNow = DateTime.now().hour;

    if (timeNow <= 11.59) {
      return 'Good Morning';
    } else if (timeNow > 12 && timeNow <= 16) {
      return 'Good Afternoon';
    } else if (timeNow > 16 && timeNow < 20) {
      return 'Good Evening';
    } else {
      return 'Good Night';
    }
  }

  String getCurrentDate() {
    var date = DateTime.now().toString();

    var dateParse = DateTime.parse(date);

    var formattedDate = "${dateParse.day}-${dateParse.month}-${dateParse.year}";
    return formattedDate.toString();
  }
}