Flutter 如何在颤振中显示3秒钟的循环压缩机指示器
是否可以使用计时器包装我的CircularProgressIndicator。。。我想展示我的CircularProgressIndicator 3秒钟,但我不知道怎么做。。。我读过的大部分资源都是包装一个函数,该函数由计时器内的CircularProgressIndicator组成。。这是我的密码Flutter 如何在颤振中显示3秒钟的循环压缩机指示器,flutter,dart,load,Flutter,Dart,Load,是否可以使用计时器包装我的CircularProgressIndicator。。。我想展示我的CircularProgressIndicator 3秒钟,但我不知道怎么做。。。我读过的大部分资源都是包装一个函数,该函数由计时器内的CircularProgressIndicator组成。。这是我的密码 Future getData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); S
Future getData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String dataIn = prefs.getString("clockin");
return dataIn;
}
Widget defaultClock() {
return FutureBuilder(
future: getData(),
builder: (context, snap) {
if (snap.hasData) {
return Text(snap.data);
} else {
return CircularProgressIndicator();
}
},
);
}
你可以用电脑来做
下面的代码解释得更清楚
String data;
Future getData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String dataIn = prefs.getString("clockin") ?? 'default';
return dataIn;
}
callme() async {
await Future.delayed(Duration(seconds: 3));
getData().then((value) => {
setState(() {
data = value;
})
});
}
@override
void initState() {
super.initState();
callme();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: data == null ? CircularProgressIndicator() : Text(data),
),
);
}
你可以用电脑来做
下面的代码解释得更清楚
String data;
Future getData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String dataIn = prefs.getString("clockin") ?? 'default';
return dataIn;
}
callme() async {
await Future.delayed(Duration(seconds: 3));
getData().then((value) => {
setState(() {
data = value;
})
});
}
@override
void initState() {
super.initState();
callme();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: data == null ? CircularProgressIndicator() : Text(data),
),
);
}
Timer\u定时器;
int _start=3;
布尔加载=真;
void startTimer(){
const oneSec=const持续时间(秒:1);
_定时器=新定时器。周期性(
一秒,
(计时器)=>设置状态(
() {
如果(_start<1){
设置状态(){
加载=假;
});
timer.cancel();
}否则{
_开始=_开始-1;
}
},
),
);
}
@凌驾
void initState(){
startTimer();
super.initState();
}
@凌驾
无效处置(){
_timer.cancel();
super.dispose();
}
Future getData()异步{
SharedReferences prefs=等待SharedReferences.getInstance();
字符串dataIn=prefs.getString(“时钟输入”);
返回数据输入;
}
窗口小部件defaultClock(){
回归未来建设者(
future:getData(),
生成器:(上下文,捕捉){
if(snap.hasData&&loading==false){
返回文本(快照数据);
}否则{
返回循环ProgressIndicator();
}
},
);
}
定时器\u定时器;
int _start=3;
布尔加载=真;
void startTimer(){
const oneSec=const持续时间(秒:1);
_定时器=新定时器。周期性(
一秒,
(计时器)=>设置状态(
() {
如果(_start<1){
设置状态(){
加载=假;
});
timer.cancel();
}否则{
_开始=_开始-1;
}
},
),
);
}
@凌驾
void initState(){
startTimer();
super.initState();
}
@凌驾
无效处置(){
_timer.cancel();
super.dispose();
}
Future getData()异步{
SharedReferences prefs=等待SharedReferences.getInstance();
字符串dataIn=prefs.getString(“时钟输入”);
返回数据输入;
}
窗口小部件defaultClock(){
回归未来建设者(
future:getData(),
生成器:(上下文,捕捉){
if(snap.hasData&&loading==false){
返回文本(快照数据);
}否则{
返回循环ProgressIndicator();
}
},
);
}
如果这有帮助
您可以使用计时器小部件
加载时显示CircularRogesIndicator,最后,您可以在10秒后调用所需的函数
Timer(Duration(seconds: 10, callback));
如果这有帮助的话
您可以使用计时器小部件
加载时显示CircularRogesIndicator,最后,您可以在10秒后调用所需的函数
Timer(Duration(seconds: 10, callback));
嗨,我是飞镖新手。。。你能给我解释一下这是什么意思吗违约",代码>这意味着,如果您没有在SharedReferences中设置时钟的任何值,那么它将采用我在???之后指定的默认值??被称为空感知运算符。通过使用您的代码。。。我不再需要我的Widget
defaultClock()
了…如果我这样说,我说对了吗?是的,你可以像我一样直接展示你的数据。等等,我会在我的代码中运行它后让你知道结果嗨,我是颤振飞镖的新手。。。你能给我解释一下这是什么意思吗违约",代码>这意味着,如果您没有在SharedReferences中设置时钟的任何值,那么它将采用我在???之后指定的默认值??被称为空感知运算符。通过使用您的代码。。。我不再需要我的WidgetdefaultClock()
了……如果我这样说,我说对了吗?是的,你可以像我一样直接展示你的数据。等等,我会在我的代码中运行它后告诉你结果