Material
组件库提供了 Material
风格的单选开关 Switch
和复选框 Checkbox
,虽然它们都是继承自 StatefulWidget
,但是他们本身不会保存选中的状态,而是将这个状态交给父 Widget
来维护。
当 Switch
或 Checkbox
被点击时,会触发他们的 onChange
回调,然而,我们就可以在这个回调中来维护状态。下面看一个示例:
定义一个有状态的组件作为父 Widget
,来管理单选开关和复选框的状态。
class SwitchAndCheckboxWidget extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return new _SwitchAndCheckboxStateWidget();
}
}
对应的 State
:
class _SwitchAndCheckboxStateWidget extends State<SwitchAndCheckboxWidget>{
bool _switched = true;
bool _checkboxed = true;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Switch(
value: _switched,
onChanged: