list - 如何遍历列表并在Dart中重置?

标签 list flutter dart

我有一个简单的问题。我有一个三个整数的列表。在我的应用中,我有一个 float 操作按钮。每次按下按钮时,都会显示列表的“下一个”元素。循环完成后,我必须重置为第一个元素。我很难做到这一点。

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  List nums = [1, 2, 3];

  void _incrementCounter() {
    if (_counter <= 1) {
      setState(() {
        _counter++;
      });
    } else {
      setState(() {
        _counter = 0;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text('${nums[_counter]}'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        child: Icon(Icons.add),
      ),
    );
  }
}


我想知道是否有一些更简单的方法来实现这一目标。在此先感谢您的帮助。

最佳答案

循环后,您可以使用剩余数(%)返回第一个索引:

  void _incrementCounter() {
      setState(() {
        _counter = (_counter + 1) % nums.length;
      });
  }

关于list - 如何遍历列表并在Dart中重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63453019/

相关文章:

dart - 如何从 angular dart 访问现有的 javascript 库

flutter - 如何在 Flutter 中更新现有文件(Path_Provider)

python - 删除列表中的重复列表

python - 如何遍历列表,获取每对可能的值?

dart - 将字符串作为 FontAwesomeIcons 传递

flutter - 使用 VS Code 在 Genymotion 机器上运行 Flutter

c# - 如何从列表中删除字符串对象?

python - 使用标题词作为键从 .CSV 文件创建词典列表

google-maps - 如何自定义 Google map 上的 myLocationEnabled 按钮?

dart - 将方法作为参数传递给小部件