摘要:控件練習地址一。勾選框勾選框,繼承于所以本身他是沒有狀態的,一般都是在父控件中加入有狀態的控件來給他設置。
flutter控件練習demo地址:github
一。CheckBox(勾選框)
CheckBox 勾選框,繼承于 StatefulWidget, 所以本身他是沒有狀態的 Widget ,一般都是在 父 控件中加入有狀態的控件來給他設置。
1.1 屬性
tristate: 默認這個是false,此時 value 必定不能是null, 可以設置 為 true,此時 value 可以是任意值
value: 這個值不能是null(除非上面 tristate 是true) , 用來設置 此 checkbox 是否選中
onChanged: 是否選中發生變化時的回調, 回調的 bool 值 就是是否選中 ,true 就是選中
activeColor: 勾選后 勾選框填充的顏色 默認是 ThemeData.toggleableActiveColor
checkColor: 對勾的顏色 默認的是白色
materialTapTargetSize:
二。CheckboxListTile(有標題的Checkbox)
2.1 屬性
value: // 必須要的屬性,是否選定
onChanged: 是否選中發生變化時的回調, 回調的 bool 值 就是是否選中 , true 是 選中
activeColor: 選中時 checkbox 的填充的顏色
title: 標題, 具有代表性的就是 Text
subtitle: 副標題(在 title 下面), 具有代表性的就是 Text
isThreeLine = false:// 是否是三行文本
true : 副標題 不能為 null
false:如果沒有副標題 ,就只有一行, 如果有副標題 ,就只有兩行
dense: 是否密集垂直
secondary: 左邊的一個控件
selected = false: text 和 icon 的 color 是否 是 activeColor 的顏色
controlAffinity = ListTileControlAffinity.platform:
ListTileControlAffinity.platform 根據不同的平臺,來顯示 對話框 的位置
ListTileControlAffinity.trailing:勾選在右,title 在中,secondary 在左
ListTileControlAffinity.leading :勾選在左,title 在中,secondary 在右
三 實例截圖
四 代碼
import "package:flutter/material.dart";
import "package:fluttertoast/fluttertoast.dart";
class CheckBoxDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("CheckBox"),
centerTitle: true,
),
body: _Stateful(),
);
}
}
class _Stateful extends StatefulWidget {
@override
State createState() {
// TODO: implement createState
return _CheckBoxState();
}
}
class _CheckBoxState extends State {
bool _isCheck;
bool _isMale;
bool _isFemale;
bool _checkboxListChecked;
bool _checkboxList2Checked;
@override
void initState() {
super.initState();
_isCheck = false;
_isMale = true;
_isFemale = false;
_checkboxListChecked = false;
_checkboxList2Checked = false;
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 20,
),
Text("一:Checkbox",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20)),
Checkbox(
// tristate: true,
// 這個值不能是null(除非上面 tristate 是true) , 用來設置 此 checkbox 是否選中
value: _isCheck,
// 勾選后 勾選框填充的顏色 默認是 ThemeData.toggleableActiveColor
activeColor: Colors.red,
// 對勾的顏色 默認的是白色
checkColor: Colors.blue,
// 是否選中發生變化時的回調, 回調的 bool 值 就是是否選中
// true 就是選中
onChanged: (isCheck) {
if (isCheck) {
Fluttertoast.showToast(msg: "改變了:$isCheck");
}
_isCheck = isCheck;
//改變_CheckBoxState
setState(() {});
},
),
Text("用checkbox實現單選,其實就是改值",
style: TextStyle(fontWeight: FontWeight.bold)),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
Text("男"),
Checkbox(
value: _isMale,
onChanged: (isMan) {
setState(() {
if (isMan) {
_isMale = true;
_isFemale = false;
}
});
},
)
],
),
SizedBox(
width: 20,
),
Row(
children: [
Text("女"),
Checkbox(
value: _isFemale,
onChanged: (isFemale) {
setState(() {
if (isFemale) {
_isFemale = true;
_isMale = false;
}
});
},
)
],
)
],
),
SizedBox(
height: 20,
),
Text("二:CheckboxListTile",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20)),
SizedBox(
width: 250,
child: Column(
children: [
CheckboxListTile(
// 必須要的屬性
value: _checkboxListChecked,
//是否選中發生變化時的回調, 回調的 bool 值 就是是否選中 , true 是 選中
onChanged: (isCheck) {
Fluttertoast.showToast(msg: "選的$isCheck");
setState(() {
_checkboxListChecked = isCheck;
});
},
// 選中時 checkbox 的填充的顏色 ,
// selected 如果是 true :
// 如果 不設置 title 和 subtitle 中 text 的 color 的話, text的顏色 跟隨 activeColor
activeColor: Colors.red,
// 標題, 具有代表性的就是 Text ,
// selected 如果是 true :
// 如果 不設置 text 的 color 的話, text的顏色 跟隨 activeColor
title: Text(
"標題",
style: TextStyle(color: Colors.blueAccent),
),
// 副標題(在 title 下面), 具有代表性的就是 Text , 如果 不設置 text 的 color 的話, text的顏色 跟隨 activeColor
subtitle: Text("副標題"),
// 是否是三行文本
// 如果是 true : 副標題 不能為 null
// 如果是 false:
// 如果沒有副標題 ,就只有一行, 如果有副標題 ,就只有兩行
isThreeLine: true,
// 是否密集垂直
dense: false,
// 左邊的一個控件
secondary: Text("secondary"),
// text 和 icon 的 color 是否 是 activeColor 的顏色
selected: false,
controlAffinity: ListTileControlAffinity.trailing,
),
CheckboxListTile(
onChanged: (isCheck) {
setState(() {
_checkboxList2Checked = isCheck;
});
},
selected: false,
value: _checkboxList2Checked,
title: Text("標題2"),
controlAffinity: ListTileControlAffinity.leading,
)
],
)),
],
);
}
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/6731.html
摘要:控件練習地址一。單選框中的單選框,和一樣本身沒有狀態,必須父親有狀態才能改變值屬性此的值當選擇此的時候的回調。flutter控件練習demo地址:github 一。Radio (單選框) flutter 中的單選框 , 和 Checkbox 一樣 本身沒有狀態,必須父親有狀態 才能改變值 1.1 屬性 value: 此 Radio 的 value 值 onChanged: 當選擇此 ...
摘要:是啥是谷歌推出的一套視覺設計語言。比如有的可以換皮膚,而每一套皮膚就是一種設計語言,有古典風呀炫酷風呀極簡風呀神馬的,而就是谷歌風,有興趣的同學可以學習了解一下官方原版和中文翻譯版,這是每一個產品經理的必修教材。 flutter環境和運行環境搭建好之后,可以開始擼碼了,然而當你打開VScode,在打開項目文件夾后,擺在你面前的是main.dart被打開的樣子,里面七七八八的已經寫好了一...
摘要:布局控件不會直接呈現內容,可看作承載可視控件的容器。布局控件也是可以模擬顯示的,通常用于調試布局樣式時用到的網格線標尺動畫幀等。但是當頁面內容需要超出屏幕尺寸時,就用和代替。 不知不覺已經到了第7篇,然而很多萌新玩家可能還是不知道如何堆砌控件,像用CSS一樣搭出漂亮的APP界面,我也一樣,紅紅火火恍恍惚惚,直到今天含淚讀完Flutter布局基礎,仿佛打開了一個全新的世界。 基本概念 在...
摘要:前言最近比較熱門,但是成體系的文章并不多,前期避免不了踩坑我這篇文章主要介紹如何使用實現一個比較復雜的手勢交互,順便分享一下我在使用過程中遇到的一些小坑,減少大家入坑作者鏈接先睹為快本項目支持運行,效果如下對了,順便分享一下生成的小竅門,建 前言 Flutter最近比較熱門,但是Flutter成體系的文章并不多,前期避免不了踩坑;我這篇文章主要介紹如何使用Flutter實現一個比較復雜...
摘要:前言最近比較熱門,但是成體系的文章并不多,前期避免不了踩坑我這篇文章主要介紹如何使用實現一個比較復雜的手勢交互,順便分享一下我在使用過程中遇到的一些小坑,減少大家入坑作者鏈接先睹為快本項目支持運行,效果如下對了,順便分享一下生成的小竅門,建 前言 Flutter最近比較熱門,但是Flutter成體系的文章并不多,前期避免不了踩坑;我這篇文章主要介紹如何使用Flutter實現一個比較復雜...
閱讀 1814·2021-09-22 15:54
閱讀 2923·2021-09-01 10:42
閱讀 3442·2019-08-30 15:56
閱讀 1432·2019-08-29 18:46
閱讀 2465·2019-08-29 10:57
閱讀 2703·2019-08-28 17:57
閱讀 3659·2019-08-23 18:14
閱讀 833·2019-08-23 17:03