我有一个包含 2 个具有随机颜色容器的元素的列表。我想交换第一个和第二个元素。代码是
tiles.insert(1, tiles.removeAt(0));
Run Code Online (Sandbox Code Playgroud)
它工作正常,一直在相互交换颜色,但我不知道那里发生了什么。有人可以解释一下发生了什么事吗?
完整代码:(从https://medium.com/flutter/keys-what-are-they-good-for-13cb51742e7d获得)
void main() => runApp(new MaterialApp(home: PositionedTiles()));
class PositionedTiles extends StatefulWidget {
@override
State<StatefulWidget> createState() => PositionedTilesState();
}
class PositionedTilesState extends State<PositionedTiles> {
List<Widget> tiles = [
StatelessColorfulTile(),
StatelessColorfulTile(),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(children: tiles),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.sentiment_very_satisfied), onPressed: swapTiles),
);
}
swapTiles() {
setState(() {
tiles.insert(1, tiles.removeAt(0));
});
}
}
class StatelessColorfulTile extends StatelessWidget {
Color myColor = UniqueColorGenerator.getColor();
@override
Widget build(BuildContext context) {
return …
Run Code Online (Sandbox Code Playgroud)