gpt4 book ai didi

flutter - 如何将这些功能实现到切换按钮中?无法使它正常工作

转载 作者:行者123 更新时间:2023-12-03 04:38:37 24 4
gpt4 key购买 nike

抱歉,我是Flutter的新手,遇到了一些麻烦。我想在按第一个,第二个或第三个按钮时启动功能。这些按钮可启动 map 标记,折线等。将它们分配给带图标按钮的onPress时,它们可以正常工作...我不知道如何使它们与ToggleButton一起使用...是否必须将它们添加到列表中不知何故?如果是这样,怎么办?
这是我的三个按钮:

            Consumer<ProviderMaps>(builder: (context, menu, widget) {
return Container(
padding: EdgeInsets.zero,
decoration: BoxDecoration(
border: Border.all(color: Colors.transparent, width: 1.0),
borderRadius: BorderRadius.all(Radius.circular(5.0)),
),
child: ToggleButtons(
selectedColor: Colors.red,
color: Colors.white,
children: <Widget>[
Icon(MdiIcons.vectorPolygon),
Icon(MdiIcons.ruler),
Icon(MdiIcons.pencil),
],
onPressed: (int index) {
setState(() {
for (int buttonIndex = 0;
buttonIndex < _selection.length;
buttonIndex++) {
if (buttonIndex == index) {
_selection[buttonIndex] = !_selection[buttonIndex];
} else {
_selection[buttonIndex] = false;
}
}
});
},
isSelected: _selection,
),
);
}),
我的列表:
List<bool> _selection = List.generate(3, (_) => false);
切换按钮时,我想调用如下函数:
menu.changestatutpolyg();
menu.changestatupolyli();
_initFreeDraw();
这就是我通常调用这些函数的方式(正常工作):
        Consumer<ProviderMaps>(builder: (context, menu, widget) {
return IconButton(
icon: Icon(MdiIcons.ruler),
color: Color(0xffFFFFFF),
onPressed: () {
menu.changestatupolyli();
});
}),
有人知道该怎么做吗?请指教。
编辑:
尝试#:
          onPressed: (int index) {
setState(
() {
switch (index) {
case 1:
{
menu.changestatutpolyg();
}
break;
case 2:
{
menu.changestatupolyli();
}
break;

case 3:
{
_initFreeDraw();
}
break;
}
},
);
},
isSelected: _selection,
),
);
}),

最佳答案

好吧,ToggleButtonsonPressed确实为您提供了按下按钮的索引。因此,如果按下第一个按钮,索引将为0;如果按下第二个按钮,索引将为0,依此类推。
因此,在onPressed中,您可以检查索引,并根据该调用调用适当的功能(如果语句也可以正常运行,则为常规功能):

onPressed: (int index) {
switch(index) {
case 0: {
callFunction1();
}
break;
case 1: {
callFunction2();
}
break;
//etc.
}
},
或者更好的是,您可以将函数放置在数组中(确保以正确的顺序放置它们),然后执行以下操作:
var functions = <Function>[function1, function2, function3];
//...
//then, in the onPressed:
onPressed: (int index) {
//call the function of that index
functions[index]();
}

关于flutter - 如何将这些功能实现到切换按钮中?无法使它正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63641222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com