将按钮的 color 设置一个变量 点击以后改变变量的值
class ThemeColors {
///纯黑色
static Color colorBlack = Color.fromARGB(255, 0, 0, 0);
}
class SwitchDemo extends StatefulWidget {
@override
State createState() => FirstScreen();
}
class FirstScreen extends State {
bool check = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('First Screen'),
),
body: Column(
children: [
Container(
child: Center(
child: Container(
child: GestureDetector(
child: new Text(
'hello',
style: new TextStyle(
color: Colors.white,
fontSize: 24.0,
fontWeight: FontWeight.w900,
)),
onTap: () {
Navigator.of(context).pushNamed('/demo');
},
),
decoration: BoxDecoration(
image: DecorationImage(
image:AssetImage('assets/1.jpg'),
),
),
width: 400,
height: 200,
),
),
width: 400,
color: Colors.red,
),
RaisedButton(
child: Text(' 返回 ',
style: new TextStyle(
color: Colors.white,
fontSize: 24.0,
fontWeight: FontWeight.w900,
)),
color: ThemeColors.colorBlack, // 颜色设置为变量
onPressed:() {
setState(() {
if (check) { // 通过判断check 来 改变按钮颜色
Navigator.of(context).pushNamed('/Platform');
ThemeColors.colorBlack = Color.fromARGB(255, 0, 0, 0);
} else {
ThemeColors.colorBlack = Color.fromARGB(255, 226, 36, 0);
}
});
},
),
Switch(
value: check,
activeColor: Colors.red,
activeTrackColor: Colors.blue,
inactiveThumbColor: Colors.green,
inactiveTrackColor: Colors.orange, // 激活时原点颜色
materialTapTargetSize: MaterialTapTargetSize.padded,
onChanged: (bool val) {
setState(() {
check = !check;
if (check) {
print(check);
}
});
},
)
],
),
);
}
}