在ElevatedButton和OutlinedButton小部件中没有这样的属性来像常规RaisedButton一样更改禁用的颜色。
ElevatedButton
OutlinedButton
RaisedButton
ElevatedButton( onPressed: null, disabledColor: Colors.brown, // Error }
nx7onnlm1#
如果只想更改禁用的颜色,请使用onSurface属性(此属性在OutlinedButton中也可用)。
onSurface
ElevatedButton( onPressed: null, style: ElevatedButton.styleFrom( onSurface: Colors.brown, ), child: Text('ElevatedButton'), )
如需更多自定义,请使用ButtonStyle:
ButtonStyle
ElevatedButton( onPressed: null, style: ButtonStyle( backgroundColor: MaterialStateProperty.resolveWith<Color>((states) { if (states.contains(MaterialState.disabled)) { return Colors.brown; // Disabled color } return Colors.blue; // Regular color }), ), child: Text('ElevatedButton'), )
要将其应用于应用中的所有ElevatedButton,请执行以下操作:
MaterialApp( theme: ThemeData( elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( onSurface: Colors.brown ), ), ), )
kgsdhlau2#
如果你想在应用中设置一个提升的按钮主题,你可以使用这个:
ThemeData( elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( onSurface: Colors.brown ), child: Text('ElevatedButton') ))
0dxa2lsx3#
这个答案被否决了。现在,您可以使用disabledForegroundColor和disabledBackgroundColor属性来控制按钮取消时的外观。示例:
ElevatedButton( onPressed: null, style: ElevatedButton.styleFrom( disabledForegroundColor: Colors.grey[700], disabledBackgroundColor: Colors.grey[300], ), child: Text('Disabled Elevated Button'), ) OutlinedButton( onPressed: null, style: OutlinedButton.styleFrom( disabledForegroundColor: Colors.grey[400], ), child: Text('Disabled Outlined Button'), )
3条答案
按热度按时间nx7onnlm1#
如果只想更改禁用的颜色,请使用
onSurface
属性(此属性在OutlinedButton
中也可用)。如需更多自定义,请使用
ButtonStyle
:要将其应用于应用中的所有
ElevatedButton
,请执行以下操作:kgsdhlau2#
如果你想在应用中设置一个提升的按钮主题,你可以使用这个:
0dxa2lsx3#
这个答案被否决了。现在,您可以使用disabledForegroundColor和disabledBackgroundColor属性来控制按钮取消时的外观。
示例: