我有以下代码:
@override
Widget build(BuildContext context) {
return new Container(
height: 72.0, // in logical pixels
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 8.0),
decoration: new BoxDecoration(color: Colors.white),
// Row is a horizontal, linear layout.
child: new MaterialButton(
child: new Text(
_sprinkler.name,
style: new TextStyle(color: Colors.white)
),
splashColor: Colors.blueAccent,
color: Colors.blue[800],
onPressed: () {
print("onTap(): tapped" + _sprinkler.name);
},
),
);
}
onPressed(),我想更改按钮样式-代表喷头 Activity 。
因此,我需要访问MaterialButton Widget本身。
但是,如何从回调中访问它呢?
在此先多谢,并为n00b问题感到抱歉,我是Dart和Flutter的新手;)
最佳答案
您可以将某些属性设置为变量。然后,您可以在setState()
中调用onPressed()
来更改属性变量。
本示例说明如何使用以下方法更改按钮的文本颜色:
Color textColor = Colors.white;
@override
Widget build(BuildContext context) {
return new Container(
height: 72.0, // in logical pixels
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 8.0),
decoration: new BoxDecoration(color: Colors.white),
// Row is a horizontal, linear layout.
child: new MaterialButton(
child: new Text(
_sprinkler.name,
style: new TextStyle(color: textColor)
),
splashColor: Colors.blueAccent,
color: Colors.blue[800],
onPressed: () {
this.setState(() {
textColor = Colors.red;
})
},
),
);
}