我有一个调用自定义Switch小部件的父部件。我需要在父部件中获取开关值(开或关)。我能否在我的Switch小部件中创建控制器来返回该值?
目前,我正在通过函数从父部件传递来更改布尔值的值(该值基于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);
},
),
}
每当我需要一个开关时,代码中无处不用到switch小部件。有时候我不需要知道开关的状态,只是需要在切换开关时执行一个函数,但是按照我的写法,每次调用开关时都需要传递bool值。希望能找到更好的方法。
例如:因为我不需要val布尔值,所以它变得没有必要。
Switch(onSwitchToggle: (bool val) {
print('abc')
})