如何在抖动几秒钟后更新图像?

问题描述 投票:0回答:1

我正在构建Flutter应用程序,该应用程序需要在一段时间后更改图像。我认为将while循环与内部的sleep方法一起使用可能会解决问题。但事实并非如此,在循环结束后,Image只会发生变化。应用程序用户界面也被冻结。

所需的输出:应该每10秒更改一次图像。

Image When I clicked On Start BUtton To start The Loop Image After Loop Ends

[图像和按钮文字未更新 <,请帮助我获得所需的输出。 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Test( ), ), ) ); }} class Test extends StatefulWidget { @override _TestState createState() => _TestState(); } class _TestState extends State<Test> { int imgnumber=1; int varToCheckButtonPress = 0; String BtnTxt = "START"; void inc(){ while(imgnumber<10) { print(imgnumber); setState(() { sleep(Duration(seconds:5)); imgnumber++; }); } } @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: <Widget>[ Expanded(flex: 1, child: Container( child: Image.asset('images/'+imgnumber.toString()+'.png'), height: 500, width:500, color: Colors.green, ), ), FlatButton( child: Text(BtnTxt), onPressed: (){ if (varToCheckButtonPress == 0) { setState(() { BtnTxt = 'PAUSE'; varToCheckButtonPress = 1; }); } else if (varToCheckButtonPress == 1) { setState(() { BtnTxt = 'RESUME'; varToCheckButtonPress = 0; }); } inc(); }, ) ], ); } }

我正在构建Flutter应用程序,该应用程序需要在一段时间后更改图像。我认为将while循环与内部的sleep方法一起使用可能会解决问题。但事实并非如此,图片仅是...
flutter dart flutter-layout
1个回答
0
投票
您不应该在setState中使用睡眠,请尝试用以下方式替换inc功能:
© www.soinside.com 2019 - 2024. All rights reserved.