【发布时间】:2021-06-05 18:08:40
【问题描述】:
我正在尝试使用GestureDetector 及其onTap 方法一个接一个地显示3 个图像,但是应该在不点击的情况下显示一个图像。假设我有三张图片 1.png、2.png、3.png 我想显示第一张图片 1。 png 放在第一位。点击它会显示第二张图片2.png。
第二张图片 2.png 现在应该在 x 秒后被替换为显示图片 3.png。
我正在使用一个有状态的小部件来存储当前显示的图像。对于第一个图像更改,onTap 将执行setState( () {screen = "2.png"} 并重建小部件。但是,当第三张图像应该在 x 秒延迟后显示时,我现在非常卡住,因为不应该有任何用户交互,我不知道在哪里更改它。我尝试了很多东西,尤其是从小部件外部编辑状态,但直到现在我都没有成功。
这是我正在使用的代码:
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Navigation Basics',
home: MyScreen(),
));
}
class MyScreen extends StatefulWidget {
@override
_MyScreenState createState() => _MyScreenState();
}
class _MyScreenState extends State<MyScreen> {
String currentScreen = 'assets/images/1.png';
@override
Widget build(BuildContext context) {
return GestureDetector(
child: FittedBox(
child: Container(
child: Image.asset(currentScreen),
),
fit: BoxFit.fill,
),
onTap: () {
if (currentScreen == 'assets/images/1.png') {
setState(() {
currentScreen = 'assets/images/2.png';
});
}
},
);
}
}
显示第二张图片没有任何问题,但我不知道要编码什么/在哪里才能显示第三张图片。
感谢您的帮助!
【问题讨论】:
标签: flutter widget setstate gesturedetector user-interaction