build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Describes the part of the user interface represented by this widget.

Implementation

@override
Widget build(BuildContext context) {
  widget._state = this;
  return Focus(
    focusNode: focusNode,
    onKeyEvent: (event) {
      if (event.type == KeyType.character &&
          (event.key == ' ' || event.key == '\r' || event.key == '\n')) {
        triggerEffect(
          _ripple,
          Point((widget.width ?? 10) ~/ 2, (widget.height ?? 3) ~/ 2),
        );
        Timer.periodic(TuiAnimationConfig.vsyncInterval, (timer) {
          if (!mounted) {
            timer.cancel();
            return;
          }
          if (_ripple.status == AnimationStatus.completed) {
            reverseEffect(_ripple);
            widget.onPressed();
            timer.cancel();
          }
        });
        return true;
      }
      return false;
    },
    onFocusChange: (focused) {
      if (mounted) setState(() {});
      widget.onFocusChange?.call(focused);
    },
    child: _InkwellButtonRenderWidget(this),
  );
}