我有一个简单的问题。我有一个三个整数的列表。在我的应用中,我有一个 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/