You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何通过EvaluatedButton实现点击随机展示图片?

Flutter实现点击按钮随机切换展示图片

实现思路

核心是通过状态管理更新当前显示的图片路径,点击按钮时从图片列表中随机选取一个元素并刷新UI。

完整代码示例

import 'dart:math';
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('随机图片展示')),
        body: const RandomImageScreen(),
      ),
    );
  }
}

class RandomImageScreen extends StatefulWidget {
  const RandomImageScreen({super.key});

  @override
  State<RandomImageScreen> createState() => _RandomImageScreenState();
}

class _RandomImageScreenState extends State<RandomImageScreen> {
  // 你的图片列表
  final List<String> images = [
    'images/1.jpg',
    'images/2.jpg',
    'images/3.jpg',
    'images/4.jpg',
    'images/5.jpg',
  ];

  // 当前显示的图片路径
  String? currentImage;

  @override
  void initState() {
    super.initState();
    // 初始化时随机选一张图片
    _pickRandomImage();
  }

  // 随机选择图片的方法
  void _pickRandomImage() {
    final random = Random();
    setState(() {
      currentImage = images[random.nextInt(images.length)];
    });
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          // 展示图片
          if (currentImage != null)
            Image.asset(
              currentImage!,
              width: 200,
              height: 200,
              fit: BoxFit.cover,
            ),
          const SizedBox(height: 30),
          // 触发随机切换的按钮
          ElevatedButton(
            onPressed: _pickRandomImage,
            child: const Text('切换随机图片'),
          ),
        ],
      ),
    );
  }
}

关键说明

  • 使用StatefulWidget管理图片状态,确保点击按钮后UI实时刷新
  • 通过dart:math的Random类生成随机索引,从列表中选取图片
  • initState方法初始化默认显示的图片,避免首次加载无内容
  • 按钮的onPressed回调直接调用_pickRandomImage方法触发状态更新

内容的提问来源于stack exchange,提问作者أفنان خالد

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 06:07:16