如何在flutter中实现类似CSS类的按钮样式



我是flutter的新手,我想在UI方面减少代码重复。

比方说,我选择了一些主题。ElevatedButton将具有该主题的颜色。

现在,我想有一些按钮可以替换样式(例如,"取消"按钮为灰色或"接受"按钮为亮绿色(。

通常我喜欢这样:

ElevatedButton(
style: ElevatedButton.styleFrom(primary: Colors.grey[100]),
onPressed: () {
// onPressed logic here
},
child: const Text(
'Cancel',
style: TextStyle(color: Colors.black54),
),
),

但如果我有多个"取消"按钮,则会重复此代码:CCD_ 2和style: TextStyle(color: Colors.black54),

什么是";Flutter";实现它的方式,这样我就可以拥有";取消";或";接受";在一个地方定义的风格?我应该创建自己的小部件CancelButton吗?还是有更好的方法?

ElevatedButton(
style: Styles.cancelButtonStyle(),
onPressed: () {
// onPressed logic here
},
child: const Text(
'Cancel',
style: Styles.cancelButtonTextStyle(),
),
),

您的定制风格类

class Styles{
static TextStyle cancelButtonTextStyle(){
return TextStyle(
fontSize: 16,
color: Colors.black54
);
}
static TextStyle acceptButtonTextStyle(){
return TextStyle(
fontSize: 16,
color: Colors.black54
);
}
static ButtonStyle cancelButtonStyle(){
return ElevatedButton.styleFrom(primary: Colors.grey[100]);
}
static ButtonStyle acceptButtonStyle(){
return ElevatedButton.styleFrom(primary: Colors.green[700]);
}
}

最新更新