Flutter 如何在文本窗口小部件中输入当前日期?
大家好我是颤振的初学者 我正在使用dart和Flatter构建一个报警应用程序,但当我尝试在文本小部件中输入当前日期时,出现了一个错误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
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();
}
}