序文
材料コンポーネントライブラリは、それらがStatefulWidgetから継承されますが、彼ら自身が現在選択されている状態の保存、選択された状態は、親コンポーネントによって管理されていませんが、材料スタイルスイッチは、ラジオやチェックボックスチェックボックスを切り替えています。スイッチまたはチェックボックスをクリックすると、それはこのコールバックのロジックを変更するために選択された状態を扱うことができる彼らのonChangedイベントコールバックをトリガします。
例
// 单选框和复选框
import 'package:flutter/material.dart';
class SwitchCheckboxRoute extends StatefulWidget {
@override
_SwitchCheckboxRouteState createState() => _SwitchCheckboxRouteState();
}
class _SwitchCheckboxRouteState extends State<SwitchCheckboxRoute> {
// 维护单选状态
bool _switchSelected = true;
// 维护复选状态
bool _checkboxSelected = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('单选框 复选框'),
),
body: Container(
child: Column(
children: <Widget>[
// 单选框
Switch(
// 当前状态
value: _switchSelected,
onChanged: (value){
// 重新构建页面
setState(() {
_switchSelected = value;
});
},
),
// 复选框
Checkbox(
value: _checkboxSelected,
onChanged: (value) {
setState(() {
_checkboxSelected = value;
});
},
),
],
),
),
);
}
}
概要
チェックボックスのプロパティを切り替えて、比較的単純な、彼らは色のアクティブ状態を設定するためのプロパティactiveColorを持っています。サイズについては、これまでのところ、チェックボックスのサイズが固定されており、カスタマイズすることができない、とだけの幅を定義することができ、スイッチは、高さが固定されています。チェックボックスが2つの状態を持っているので、すなわち「選択」と「選択」、トライステートかどうかを示す、デフォルト値はfalseで、チェックボックストライステート属性があることが、真の値と偽に対応する値言及する価値があります。トライステート値がtrueの場合、値は、状態ヌルの値を増加させます。
スイッチおよびチェックボックスによって、彼ら自身が(選択した場合)の関連状態ですが、私たちは、それを見ることができますが、彼らは状態を維持するために、独自ではありませんが、その後、時にユーザーがクリックする状態を管理するために、親コンポーネントを必要とし、イベント通知を通じてスイッチとチェックボックスは、ユーザー・データが自分のプライベートな状態にすることはできません。この意志とユーザーデータの関連付け、かどうかを選択するため、親コンポーネントに、これは、合理的です。