首页 > 解决方案 > Flutter 重复一个 Flutter 方法

问题描述

我想每五秒钟重复一次 handleImages() 方法,但是在让它工作时遇到了问题。

import 'package:flutter/material.dart';

class CameraImageWidget extends StatefulWidget {
  const CameraImageWidget({
    Key key,
  }) : super(key: key);

  @override
  _CameraImageWidgetState createState() => _CameraImageWidgetState();
}

class _CameraImageWidgetState extends State<CameraImageWidget> {
  String handleImages() {
    List<String> cameraImages = [
      'assets/images/imageUpload.gif',
      'assets/images/imageUploadGreen.gif',
    ];
    String randomImage = (cameraImages..shuffle()).first;
    return randomImage;
  }

  @override
  Widget build(BuildContext context) {
    return Image.asset(handleImages(), height: 450.0);
  }
}

标签: flutter

解决方案


这应该可以解决问题。还没有测试过。

class _CameraImageWidgetState extends State<CameraImageWidget> {
  String _image;

  @override
  initState(){
      handleImages();
  }
  void handleImages() async{
    List<String> cameraImages = [
      'assets/images/imageUpload.gif',
      'assets/images/imageUploadGreen.gif',
    ];
    setState(() {
       _image = (cameraImages..shuffle()).first;      
    });

    //Wait 5 seconds
    await new Future.delayed(const Duration(seconds:5));
    handleImages();
  }

  @override
  Widget build(BuildContext context) {
    return Image.asset(_image, height: 450.0);
  }
}

推荐阅读