flutter控件練習demo地址:githubgit
Switch 「開關按鈕」github
SwitchListTile 「帶標題的開關」bash
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:fluttertoast/generated/i18n.dart';
class SwitchDemo extends StatefulWidget {
@override
State<StatefulWidget> 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: <Widget>[
Row(),
SizedBox(
height: 20,
),
Text(
"一:普通的Switch",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
Switch(
value: _isCheck,
onChanged: _changed,
),
Text(
"二:特質的Switch",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
Switch(
//來初始化此 Switch 是否被選中。true 表示選中 ,false 表示不選中
value: _isCheck,
//當 拖動改變狀態時的回調。
onChanged: _changed,
//當 value 是 true 時 滑塊的顏色。也就是開的狀態時的顏色
activeColor: Colors.red,
// 當 value 是 true 時 滑道的顏色
activeTrackColor: Colors.blueAccent,
// 當 value 是 true 時 滑塊上的圖片。 若是 activeColor 也設置了 , 以 activeThumbImage 爲準
// 若是設置的是網絡圖片的話。當 滑塊 滑到這裏 纔開始加載。因此 沒加載出圖片的以前 ,以 activeColor 爲準
activeThumbImage: NetworkImage(
"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3868620627,2694438302&fm=58"),
// 當 value 是 false 時 滑塊的顏色。也就是開的狀態時的顏色
inactiveThumbColor: Colors.amberAccent,
// 當 value 是 false 時 滑道的顏色
inactiveTrackColor: Colors.green,
// 當 value 是 false 時 滑塊上的圖片。 若是 inactiveThumbColor 也設置了 , 以 inactiveThumbImage 爲準
inactiveThumbImage: AssetImage("images/hashiqi.jpg"),
),
Text(
"三:SwitchListTile",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
SizedBox(
width: 200,
child: SwitchListTile(
// 是否選中 是否打開
value: _isCheck,
// 當打開關閉的時候的回調
onChanged: _changed,
// 選中時 滑塊的顏色
activeColor: Colors.red,
// 選中時 滑道的顏色
activeTrackColor: Colors.black,
// 選中時 滑塊的圖片
// activeThumbImage: AssetImage("images/hashiqi.jpg"),
// 未選中時 滑塊的顏色
inactiveThumbColor: Colors.green,
// 未選中時 滑道的顏色
inactiveTrackColor: Colors.amberAccent,
// 未選中時 滑塊的顏色
inactiveThumbImage: AssetImage("images/hashiqi.jpg"),
// 標題
title: Text("標題"),
// 副標題 在標題下面的
// subtitle: Text("副標題"),
// 是否是三行, 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;
});
}
}
複製代碼