我想制作12个小部件,并知道每个部件的坐标。我发现GlobalKey必须被分配来获取坐标。为此,我制作了一个列表来制作GlobalKeys并分配它们,但我得到了堆栈溢出错误。
我不知道我做错了什么。有人能帮忙吗?
List<GlobalKey> keyCap =
List<GlobalKey>.generate(12, (int index) => keyCap[index] = GlobalKey());
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
key: keyCap[0],
color: Colors.red,
));
}
}
我解决了这个问题,但不明白为什么它工作。不管怎么说,:
List<GlobalKey> keyCap = List<GlobalKey>.generate(12, (index) => GlobalKey(debugLabel: 'key_$index'),growable: false);
try:
List<GlobalKey> keyCap = [];
List<int>.generate(12, (int index) { keyCap.add(GlobalKey());});