如何通过单击RaisedButton将框的颜色从蓝色更改为绿色?我正在使用Flutter上网。
class _MyAppState extends State<MyApp> {
Color colorOfBox = Colors.blue;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "App",
home: Scaffold(
body: Container(
padding: EdgeInsets.all(50),
child: Center(
child: Column(
children: <Widget>[
Text("This blue has to change to green."),
Box(colorOfBox),
RaisedButton(
color: Colors.red,
onPressed: () {
setState(() {
colorOfBox = Colors.green;
});
},
),
],
),
),
),
),
);
}
}
class Box extends StatefulWidget {
Color c;
Box(this.c, {Key key}) : super(key: key);
@override
_BoxState createState() => _BoxState(c);
}
class _BoxState extends State<Box> {
Color c;
_BoxState(this.c);
@override
Widget build(BuildContext context) {
return Container(
width: 40,
height: 40,
color: c,
);
}
}
答案 0 :(得分:1)
从Color c
删除_BoxState
class Box extends StatefulWidget {
Color c;
Box(this.c, {Key key}) : super(key: key);
@override
_BoxState createState() => _BoxState();
}
class _BoxState extends State<Box> {
@override
Widget build(BuildContext context) {
return Container(
width: 40,
height: 40,
color: widget.c,
);
}
}