updateRenderObject method

  1. @override
void updateRenderObject(
  1. BuildContext context,
  2. covariant RenderLinearBarPointer renderObject
)
override

Copies the configuration described by this RenderObjectWidget to the given RenderObject, which will be of the same type as returned by this object's createRenderObject.

This method should not do anything to update the children of the render object. That should instead be handled by the method that overrides RenderObjectElement.update in the object rendered by this object's createElement method. See, for example, SingleChildRenderObjectElement.update.

Implementation

@override
void updateRenderObject(
    BuildContext context, RenderLinearBarPointer renderObject) {
  final LinearGaugeScope linearGaugeScope = LinearGaugeScope.of(context);
  final ThemeData themeData = Theme.of(context);
  final bool isMaterial3 = themeData.useMaterial3;
  final bool isDarkTheme = themeData.brightness == Brightness.dark;
  final Color barPointerColor = isMaterial3
      ? (isDarkTheme ? const Color(0XFFFFF500) : const Color(0XFF06AEE0))
      : themeData.colorScheme.primary;
  renderObject
    ..value = value
    ..edgeStyle = edgeStyle
    ..shaderCallback = shaderCallback
    ..color = color ?? barPointerColor
    ..borderColor = borderColor ?? barPointerColor
    ..borderWidth = borderWidth
    ..thickness = thickness
    ..offset = offset
    ..position = position
    ..orientation = linearGaugeScope.orientation
    ..onAnimationCompleted = onAnimationCompleted
    ..pointerAnimation = linearGaugeScope.animation
    ..animationController = linearGaugeScope.animationController
    ..isAxisInversed = linearGaugeScope.isAxisInversed;

  super.updateRenderObject(context, renderObject);
}