Issue
I need to change color
of a widget based on theme. I have separate ThemeData
for light and dark theme. Now is it possible to add a custom property to ThemeData
so that I can change the color of the widget based on theme and using that custom property?
Solution
Instead of adding custom property, we can extend ThemeData
by extension
function. For example, if we need a custom property for color, we can add extension
function on ColorScheme
. Color
dependencies are now moved to Themedata
.
// checking brightness to support dynamic themeing
extension CustomColorSchemeX on ColorScheme {
Color get smallBoxColor1 =>
brightness == Brightness.light ? Colors.blue : Colors.grey[400];
}
And then access that property through Theme.of(context)...
Container(
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context)
.colorScheme
.smallBoxColor1),
),
Answered By - Newaj
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.