我有几个OutlineButton
,并且我希望能够有多种样式(深色,浅色,小号等)。
我可以创建一个ButtonTheme,但是如何为按钮指定主题或样式,因为它们不接受任何一个参数?
ie:我希望以下两个按钮具有不同的背景颜色:
children: {
OutlineButton(color: Colors.black, child: Text("Hello")),
OutlineButton(child:Text("GoodBye"))
}
(由于使用“应用主题”按钮的背景,因此颜色字段被忽略了)
编辑:示例代码:
Widget button(BuildContext context, String icon, String title, [Color backgroundColor = Colors.white, Color textColor = Colors.black] ) {
return Padding(
padding: const EdgeInsets.only(bottom: 15),
child: Row(
children: <Widget>[
new Expanded(
child: new OutlineButton(
key: null,
shape: RoundedRectangleBorder(),
borderSide: new BorderSide(color: const Color(0xff666666)),
highlightedBorderColor: Color(0xFF303030),
color: backgroundColor,
onPressed: buttonPressed,
child: Row(
children: <Widget>[
icon == null ? Container(width: 0, height: 0) :
new IconButton(
icon: Image.asset(icon),
iconSize: 32.0,
onPressed: () {
},
),
new Expanded(
child: new Text(
title,
textAlign: TextAlign.center,
style: Theme.of(context).primaryTextTheme.button.copyWith(color: textColor)
),
),
],
))),
],
),
);
}
void buttonPressed() {}
例如,我这样称呼它:
children: {button(null, "Hello", Colors.black, Colors.white), button(null, "Goodbye", Colors.white, Colors.black)}
答案 0 :(得分:0)
您可以使用将buttonTheme
添加到ThemeData
,然后使用 colorSchema 属性在小部件中定义颜色(您拥有30种可自定义的颜色)像这样:
RaisedButton(color: Theme.of(context).buttonTheme.colorScheme.primary)