Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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制作的flappy bird教程,我试图用分数整数更新一个文本小部件,每次障碍物经过时,我都会增加分数, 障碍物在StartName中移动,它会更新StartName中的分数,但不会更新文本 如何使文本得到相应的更新 代码: 导入'dart:async'; 进口“包装:flappy_bird_项目/屏障.dart”; 导入“包:flappy_bird_项目/bird.dart”; 进口“包装:颤振/材料.省道”; 类主页扩展了StatefulW

我是一名新的颤振者,我面临一个问题,我遵循了Dart制作的flappy bird教程,我试图用分数整数更新一个文本小部件,每次障碍物经过时,我都会增加分数, 障碍物在StartName中移动,它会更新StartName中的分数,但不会更新文本

如何使文本得到相应的更新

代码:

导入'dart:async';
进口“包装:flappy_bird_项目/屏障.dart”;
导入“包:flappy_bird_项目/bird.dart”;
进口“包装:颤振/材料.省道”;
类主页扩展了StatefulWidget{
@凌驾
_HomepageState createState()=>\u HomepageState();
}
类_HomepageState扩展状态{
静态双双轴=0;
双倍时间=0;
双倍高度=0;
双初始高度=双轴;
bool gameHasStarted=false;
静态双barrierXone=1;
双barrierXtwo=barrierXone+1.5;
智力得分=0;
int高分=10分;
无效跳转(){
设置状态(){
时间=0;
初始高度=双轴;
});
}
void startGame(){
gameHasStarted=true;
计时器周期(持续时间(毫秒:60),(计时器){
时间+=0.05;
高度=-4.9*时间*时间+2.8*时间;
设置状态(){
birdYaxis=初始高度-高度;
});
设置状态(){
如果(巴列克逊<-2){
barrierXone+=3.5;
}否则{
barrierXone-=0.05;
}
});
设置状态(){
如果(barrierXtwo<-2){
barrierXtwo+=3.5;
分数++;
}否则{
barrierXtwo-=0.05;
}
});
设置状态(){
如果(barrierXone==0 | | barrierXtwo==0){
分数++;
}
});
如果(双向轴>1){
timer.cancel();
gameHasStarted=false;
}
});
}
@凌驾
小部件构建(构建上下文){
返回手势检测器(
onTap:(){
如果(Gamehastarted){
跳跃();
}否则{
startGame();
}
},
孩子:脚手架(
正文:专栏(
儿童:[
扩大(
弹性:2,
子:堆栈(
儿童:[
动画容器(
对齐:对齐(0,双向轴),
持续时间:持续时间(毫秒:0),
颜色:颜色,蓝色,
孩子:MyBird(),
),
容器(
对齐:对齐(0,-0.3),
孩子:游戏开始了
?文本(“”)
:文本(
“T A P T O P L A Y”,
样式:TextStyle(字体大小:20,颜色:Colors.white),
),
),
动画容器(
校准:校准(barrierXone,1.1),
持续时间:持续时间(毫秒:0),
孩子:我的障碍(
尺寸:200.0,
),
),
动画容器(
校准:校准(barrierXone,-1.1),
持续时间:持续时间(毫秒:0),
孩子:我的障碍(
尺寸:200.0,
),
),
动画容器(
校准:校准(barrierXtwo,1.1),
持续时间:持续时间(毫秒:0),
孩子:我的障碍(
尺寸:150.0,
),
),
动画容器(
对齐:对齐(barrierXtwo,-1.1),
持续时间:持续时间(毫秒:0),
孩子:我的障碍(
尺寸:250.0,
),
)
],
),
),
容器(
身高:15,
颜色:颜色。绿色,
),
扩大(
子:容器(
颜色:Colors.brown,
孩子:排(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
纵队(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本(“分数”,
样式:TextStyle(颜色:Colors.white,fontSize:35)),
大小盒子(
身高:20,
),
文本(score.toString(),
样式:TextStyle(颜色:Colors.white,fontSize:35)),
],
),
纵队(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本(“最佳”,
样式:TextStyle(颜色:Colors.white,fontSize:35)),
大小盒子(
身高:20,
),
文本(highscore.toString(),
样式:TextStyle(颜色:Colors.white,fontSize:35)),
],
)
],
),
))
],
)),
);
}
}

由于变量的类型为int,因此需要使用${}来执行赋值

可以将变量的值指定给文本,如下所示:

Text ("${score}");

成功了,谢谢你!但是为什么score.toString()不起作用呢?因为toString()方法不转换变量的值,它只是以字符串格式“显示”内容,所以在print()中被广泛使用。由于未转换此值,因此无法在接口中渲染它。
Text ("${score}");