我有一个父小部件,它调用我制作的自定义 Switch 小部件。我需要父小部件中的开关值(无论是打开还是关闭)。我可以在我的开关小部件中创建一个控制器来返回该值吗?
目前,我正在从我的父小部件传递函数,它根据开关小部件中的开关值更改我的父小部件中的布尔值的值。
父小部件:
bool isSwitchOn = false;
Switch(onSwitchToggle: (bool val) {
isSwitchOn = val;
})
自定义开关小部件:
class Switch extends StatefulWidget {
Widget build(BuildContext context) {
return CupertinoSwitch(
value: widget.value,
onChanged: (bool value) {
setState(() {
widget.value = value;
});
widget.onSwitchToggle(value);
},
),
}
每当我需要开关时,代码中的任何地方都会使用开关小部件,有时我不需要知道开关的状态,我只需要在开关切换时执行一个函数,但是我编写代码的方式,每当我调用开关时,我都需要在任何地方传递 bool 。寻找更好的方法来做到这一点。例如: Bool val 是不必要的,因为我不需要它。
Switch(onSwitchToggle: (bool val) {
print('abc')
})