摘要:控件練習(xí)地址開關(guān)帶標(biāo)題的開關(guān)和一簡介開關(guān)按鈕本身也是沒有存儲狀態(tài)的。表示未選中屬性表示是否打開,通過控制這個來控制的狀態(tài)能點(diǎn)擊。表示選中,表示不選中當(dāng)拖動改變狀態(tài)時的回調(diào)。也就是開的狀態(tài)時的顏色當(dāng)是時滑道的顏色當(dāng)是時滑塊上的圖片。
flutter控件練習(xí)demo地址:github
Switch(開關(guān))、SwitchListTile(帶標(biāo)題的開關(guān)) 和 AnimatedSwitch 一 Switch 1.1 簡介Switch “開關(guān)按鈕”
本身也是沒有存儲狀態(tài)的 Widget 。需要通過有狀態(tài)的父 Widget 來控制狀態(tài)
當(dāng) Switch 狀態(tài)發(fā)生變化的時候 onChanged 會被調(diào)用 , 回調(diào)的參數(shù)是 bool ,true 表示 選中。 false 表示未選中
value 屬性 表示 是否打開,通過控制這個來控制 Switch 的狀態(tài)
能點(diǎn)擊。能滑動
1.2 屬性value: 來初始化此 Switch 是否被選中。true 表示選中 ,false 表示不選中
onChanged: 當(dāng) 拖動改變狀態(tài)時的回調(diào)。
activeColor: 當(dāng) value 是 true 時按鈕的背景顏色。也就是開的狀態(tài)時的顏色
activeTrackColor: 當(dāng) value 是 true 時 滑塊的顏色
activeThumbImage: 當(dāng) value 是 true 時 滑塊的圖片
activeThumbImage: 當(dāng) value 是 true 時 滑塊上的圖片。 如果 activeColor 也設(shè)置了 , 以 activeThumbImage 為準(zhǔn) 。如果設(shè)置的是網(wǎng)絡(luò)圖片的話。當(dāng) 滑塊 滑到這里 才開始加載。所以 沒加載出圖片的之前 ,以 activeColor 為準(zhǔn)
inactiveThumbColor: 當(dāng) value 是 false 時 滑塊的顏色。也就是開的狀態(tài)時的顏色
**inactiveTrackColor:**當(dāng) value 是 false 時 滑道的顏色
**inactiveThumbImage:**當(dāng) value 是 false 時 滑塊上的圖片。 如果 inactiveThumbColor 也設(shè)置了 , 以 inactiveThumbImage 為準(zhǔn)
二 SwitchListTile 2.1 簡介2.2 屬性SwitchListTile “帶標(biāo)題的開關(guān)”
value: 是否選中 是否打開
onChanged: 當(dāng)打開關(guān)閉的時候的回調(diào)
activeColor: 選中時 滑塊的顏色
activeTrackColor: 選中時 滑道的顏色
inactiveThumbColor: 未選中時 滑塊的顏色
inactiveTrackColor: 未選中時 滑道的顏色
activeThumbImage: 選中時 滑塊的圖片
inactiveThumbImage: 未選中時 滑塊的圖片
title: 標(biāo)題 典型的是 Text
subtitle: 副標(biāo)題 在標(biāo)題下面的 典型的是 Text
isThreeLine = false: 是不是三行, true 時: subtitle 不能為null, false時可以為 null
dense: 是否垂直密集居中
secondary: 左邊的一個東西
selected = false: 如果為 true ,則 text 和 icon 都用 activeColor 時的color
三 demo圖片四 demo代碼
import "package:flutter/material.dart";
import "package:flutter/services.dart";
import "package:fluttertoast/generated/i18n.dart";
class SwitchDemo extends StatefulWidget {
@override
State createState() {
return TextFieldStateDemo();
}
}
class TextFieldStateDemo extends State {
bool _isCheck;
@override
void initState() {
super.initState();
_isCheck = false;
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("Switch 和 SwitchListTile"),
centerTitle: true,
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(),
SizedBox(
height: 20,
),
Text(
"一:普通的Switch",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
Switch(
value: _isCheck,
onChanged: _changed,
),
Text(
"二:特質(zhì)的Switch",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
Switch(
//來初始化此 Switch 是否被選中。true 表示選中 ,false 表示不選中
value: _isCheck,
//當(dāng) 拖動改變狀態(tài)時的回調(diào)。
onChanged: _changed,
//當(dāng) value 是 true 時 滑塊的顏色。也就是開的狀態(tài)時的顏色
activeColor: Colors.red,
// 當(dāng) value 是 true 時 滑道的顏色
activeTrackColor: Colors.blueAccent,
// 當(dāng) value 是 true 時 滑塊上的圖片。 如果 activeColor 也設(shè)置了 , 以 activeThumbImage 為準(zhǔn)
// 如果設(shè)置的是網(wǎng)絡(luò)圖片的話。當(dāng) 滑塊 滑到這里 才開始加載。所以 沒加載出圖片的之前 ,以 activeColor 為準(zhǔn)
activeThumbImage: NetworkImage(
"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3868620627,2694438302&fm=58"),
// 當(dāng) value 是 false 時 滑塊的顏色。也就是開的狀態(tài)時的顏色
inactiveThumbColor: Colors.amberAccent,
// 當(dāng) value 是 false 時 滑道的顏色
inactiveTrackColor: Colors.green,
// 當(dāng) value 是 false 時 滑塊上的圖片。 如果 inactiveThumbColor 也設(shè)置了 , 以 inactiveThumbImage 為準(zhǔn)
inactiveThumbImage: AssetImage("images/hashiqi.jpg"),
),
Text(
"三:SwitchListTile",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
SizedBox(
width: 200,
child: SwitchListTile(
// 是否選中 是否打開
value: _isCheck,
// 當(dāng)打開關(guān)閉的時候的回調(diào)
onChanged: _changed,
// 選中時 滑塊的顏色
activeColor: Colors.red,
// 選中時 滑道的顏色
activeTrackColor: Colors.black,
// 選中時 滑塊的圖片
// activeThumbImage: AssetImage("images/hashiqi.jpg"),
// 未選中時 滑塊的顏色
inactiveThumbColor: Colors.green,
// 未選中時 滑道的顏色
inactiveTrackColor: Colors.amberAccent,
// 未選中時 滑塊的顏色
inactiveThumbImage: AssetImage("images/hashiqi.jpg"),
// 標(biāo)題
title: Text("標(biāo)題"),
// 副標(biāo)題 在標(biāo)題下面的
// subtitle: Text("副標(biāo)題"),
// 是不是三行, true 時: subtitle 不能為null, false時可以為 null
// isThreeLine: true,
// 如果為 true ,則 text 和 icon 都用 activeColor 時的color
// selected: true,
// 是否垂直密集居中
dense: true,
// 左邊的一個東西
secondary: Icon(Icons.access_time),
),
),
]),
);
}
void _changed(isCheck) {
setState(() {
_isCheck = isCheck;
});
}
}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/7366.html
摘要:上一篇我們實現(xiàn)了新聞列表,但在網(wǎng)絡(luò)不好的時候列表會白屏,因此為了提高使用體驗,往列表中加入懶加載效果。其次,引入一個內(nèi)置的手勢控件,用于支持下拉刷新列表的效果如下圖將異步執(zhí)行也進(jìn)行了控件化處理,即。 上一篇我們實現(xiàn)了新聞列表,但在網(wǎng)絡(luò)不好的時候列表會白屏,因此為了提高使用體驗,往列表中加入懶加載效果。其次,引入一個Flutter內(nèi)置的手勢控件,用于支持下拉刷新列表的效果如下圖: sho...
摘要:中的的線程是以事件循環(huán)和消息隊列的形式存在,包含兩個任務(wù)隊列,一個是內(nèi)部隊列,一個是外部隊列,而的優(yōu)先級又高于。同時還有處理按住時的事件額外處理,同時手勢處理一般在的子類進(jìn)行。谷歌大會之后,有不少人咨詢了我 Flutter 相關(guān)的問題,其中有不少是和面試相關(guān)的,如今一些招聘上也開始羅列 Flutter 相關(guān)要求,最后想了想還是寫一期總結(jié)吧,也算是 Flutter 的階段復(fù)習(xí)。 ??系統(tǒng)完...
摘要:是啥是谷歌推出的一套視覺設(shè)計語言。比如有的可以換皮膚,而每一套皮膚就是一種設(shè)計語言,有古典風(fēng)呀炫酷風(fēng)呀極簡風(fēng)呀神馬的,而就是谷歌風(fēng),有興趣的同學(xué)可以學(xué)習(xí)了解一下官方原版和中文翻譯版,這是每一個產(chǎn)品經(jīng)理的必修教材。 flutter環(huán)境和運(yùn)行環(huán)境搭建好之后,可以開始擼碼了,然而當(dāng)你打開VScode,在打開項目文件夾后,擺在你面前的是main.dart被打開的樣子,里面七七八八的已經(jīng)寫好了一...
摘要:布局控件不會直接呈現(xiàn)內(nèi)容,可看作承載可視控件的容器。布局控件也是可以模擬顯示的,通常用于調(diào)試布局樣式時用到的網(wǎng)格線標(biāo)尺動畫幀等。但是當(dāng)頁面內(nèi)容需要超出屏幕尺寸時,就用和代替。 不知不覺已經(jīng)到了第7篇,然而很多萌新玩家可能還是不知道如何堆砌控件,像用CSS一樣搭出漂亮的APP界面,我也一樣,紅紅火火恍恍惚惚,直到今天含淚讀完Flutter布局基礎(chǔ),仿佛打開了一個全新的世界。 基本概念 在...
閱讀 1431·2021-11-09 09:45
閱讀 1796·2021-11-04 16:09
閱讀 1459·2021-10-14 09:43
閱讀 1828·2021-09-22 15:24
閱讀 1611·2021-09-07 10:06
閱讀 1604·2019-08-30 14:15
閱讀 993·2019-08-30 12:56
閱讀 1572·2019-08-29 17:22