of static method

Returns the nearest SliderTheme.

Implementation

static SliderThemeData of(BuildContext context) {
  final SliderTheme? sliderTheme =
      context.dependOnInheritedWidgetOfExactType<SliderTheme>();
  SliderThemeData? sliderThemeData = sliderTheme?.data;

  if (sliderThemeData == null || !sliderThemeData._isConcrete) {
    final ThemeData themeData = Theme.of(context);
    final TextTheme textTheme = themeData.textTheme;
    final ColorScheme colorScheme = themeData.colorScheme;

    sliderThemeData ??= themeData.sliderTheme;

    final sliderValue =
        _SliderThemeData(textTheme: textTheme, colorScheme: colorScheme);

    final Color disabledColor =
        sliderThemeData.disabledColor ?? sliderValue.disabledColor;
    final Color activeColor =
        sliderThemeData.activeColor ?? sliderValue.activeColor;
    final Color activeHoverColor =
        sliderThemeData.activeHoverColor ?? sliderValue.activeHoverColor;
    final Color trackColor =
        sliderThemeData.trackColor ?? sliderValue.trackColor;
    final Color hightlightColor =
        sliderThemeData.hightlightColor ?? sliderValue.hightlightColor;

    return sliderThemeData.copyWith(
      disabledColor: disabledColor,
      activeColor: activeColor,
      activeHoverColor: activeHoverColor,
      trackColor: trackColor,
      hightlightColor: hightlightColor,
    );
  }

  assert(sliderThemeData._isConcrete);

  return sliderThemeData;
}