buildAnimatedContent method

  1. @protected
Widget buildAnimatedContent({
  1. required Widget builder(
    1. BuildContext context, {
    2. required bool isFocused,
    3. required bool isHovered,
    4. required bool isPressed,
    }),
})

buildAnimatedContent.

Implementation

@protected
Widget buildAnimatedContent({
  required Widget Function(
    BuildContext context, {
    required bool isPressed,
    required bool isHovered,
    required bool isFocused,
  })
  builder,
}) {
  return ValueListenableBuilder<bool>(
    valueListenable: isPressedNotifier,
    builder: (context, isPressed, _) {
      return ValueListenableBuilder<bool>(
        valueListenable: isPointerDownNotifier,
        builder: (context, isPointerDown, _) {
          return ValueListenableBuilder<bool>(
            valueListenable: isHoveredNotifier,
            builder: (context, isHovered, _) {
              return ValueListenableBuilder<bool>(
                valueListenable: isFocusedNotifier,
                builder: (context, isFocused, _) {
                  final effectivePressed = isPressed || isPointerDown;
                  return builder(
                    context,
                    isPressed: effectivePressed,
                    isHovered: isHovered,
                    isFocused: isFocused,
                  );
                },
              );
            },
          );
        },
      );
    },
  );
}