<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 單選開關和復選框 Material widgets庫中提供了Material風格的單選開關Switch和復選框Checkbox,它們都是繼承自StatelessWidget,所以它們本身不會保存當前選擇狀態,所以一般都是在父widget中管理選中狀態。當用戶點擊Switch或Checkbox時,它們會觸發onChanged回調,我們可以在此回調中處理選中狀態改變邏輯。我們看一個簡單的示例: ``` class SwitchAndCheckBoxTestRoute extends StatefulWidget { @override _SwitchAndCheckBoxTestRouteState createState() => new _SwitchAndCheckBoxTestRouteState(); } class _SwitchAndCheckBoxTestRouteState extends State<SwitchAndCheckBoxTestRoute> { bool _switchSelected=true; //維護單選開關狀態 bool _checkboxSelected=true;//維護復選框狀態 @override Widget build(BuildContext context) { return Column( children: <Widget>[ Switch( value: _switchSelected,//當前狀態 onChanged:(value){ //重新構建頁面 setState(() { _switchSelected=value; }); }, ), Checkbox( value: _checkboxSelected, activeColor: Colors.red, //選中時的顏色 onChanged:(value){ setState(() { _checkboxSelected=value; }); } , ) ], ); } } ``` 上面代碼中,由于要維護Switch和Checkbox狀態,所以SwitchAndCheckBoxTestRoute繼承自StatefulWidget 。在其build方法中分別構建了一個Switch和Checkbox,初始狀態都為選中狀態,當用戶點擊時,會將狀態置反,然后回調用`setState()`通知framework重新構建UI。 ### 屬性及外觀 Switch和Checkbox屬性比較簡單,讀者可以查看API文檔,它們都有一個activeColor屬性,用于設置激活態的顏色。至于大小,到目前為止,Checkbox的大小是固定的,無法自定義,而Switch只能定義寬度,高度也是固定的。值得一提的是Checkbox有一個屬性`tristate` ,表示是否為三態,其默認值為`false` ,這時Checkbox有兩種狀態即“選中”和“不選中”,對應的value值為`true`和`false` ;如果其值為`true`時,value的值會增加一個狀態`null`,讀者可以自行了解。 ### 總結 通過Switch和Checkbox我們可以看到,雖然它們本身是與狀態(是否選中)關聯的,但它們卻不是自己來維護狀態,而是需要父widget來管理狀態,然后當用戶點擊時,再通過事件通知給父widget,這樣是合理的,因為Switch和Checkbox是否選中本就和用戶數據關聯,而這些用戶數據也不可能是它們的私有狀態。我們在自定義widget時也應該思考一下哪種狀態的管理方式最為合理。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看