颤动代码会继续切换图片,直到您释放屏幕

时间:2019-12-04 14:50:06

标签: flutter transition gesturedetector

我想制作一个示例应用,

它将从图片1切换到 长按图2时 然后放开,它将切换到图片3,然后切换回1,

我已经创建了一个示例代码,在我的终端上没有使用手势检测器工作,它停留在图片1上,

String image;

class unostate extends State<uno> {

  @override
  Widget build(BuildContext context) {

    return Center(
      child: GestureDetector(
        child: Image.asset(
          image = "assets/11.png",
          fit: BoxFit.none,
        ),
        onTapDown: (_){
          setState(() {
            image = "assets/12.png";
          });
        },
        onTapUp: (_){
          setState(() {
            image = "assets/13.png";
          });
        },
      ),
    );

  }

}

2 个答案:

答案 0 :(得分:0)

查看您的逻辑。 我建议您创建一个返回正确图片的函数,并仅使用onTapDown或onTapUp。点击时,您可以调用返回正确图片的函数。

答案 1 :(得分:0)

类似的东西(未经测试的代码):

String image;

class unostate {
  final allImages = ['assets/11.png', 'assets/12.png'];
  String currentImage;

  String getImagem(){
    allImages.forEach((String imageName){
      if(currentImage != imageName){
        //return a difrente image
        return imageName;
      }
    });
    //if not found, return a default image name
    return allImages[0];
  }

  @override
  Widget build(BuildContext context) {

    return Center(
      child: GestureDetector(
        child: Image.asset(
          image = currentImagem,
          fit: BoxFit.none,
        ),
        onTapDown: (_){
          setState(() {
            currentImage = getImagem();
          });
        },
      ),
    );

  }

}