build method

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

Returns a FadeTransition widget with a SizeTransition widget as child.

The FadeTransition widget is configured with the _animation as opacity.

The SizeTransition widget is configured with the _animation as sizeFactor, and an axisAlignment of -1.0.

The SizeTransition widget has a GestureDetector widget as child, which is configured with an onDoubleTap callback that calls _onClosePressed.

The GestureDetector widget has a Container widget as child, which is configured with a margin of SenseiConst.margin on the bottom only, and a padding of SenseiConst.padding on all sides.

The Container widget has a ListTile widget as child, which is configured with a subtitleTextStyle of a TextStyle with a color of Theme.of(context).colorScheme.onSecondaryContainer.

The ListTile widget has an Icon widget as leading, which is configured with an Icons.lightbulb_outline_rounded icon, a size of SenseiConst.iconSize, and a color of Theme.of(context).colorScheme.onSecondaryContainer.

The ListTile widget has a Text widget as title, which is configured with the AppLocalizations.of(context).AppName text, and a style of a TextStyle with a color of Theme.of(context).colorScheme.onSecondaryContainer.

The ListTile widget has a Text widget as subtitle, which is configured with the AppLocalizations.of(context).AppDescription text.

Implementation

@override
/// Returns a [FadeTransition] widget with a [SizeTransition] widget as child.
///
/// The [FadeTransition] widget is configured with the [_animation] as opacity.
///
/// The [SizeTransition] widget is configured with the [_animation] as sizeFactor,
/// and an [axisAlignment] of -1.0.
///
/// The [SizeTransition] widget has a [GestureDetector] widget as child,
/// which is configured with an [onDoubleTap] callback that calls [_onClosePressed].
///
/// The [GestureDetector] widget has a [Container] widget as child, which is
/// configured with a margin of [SenseiConst.margin] on the bottom only, and
/// a padding of [SenseiConst.padding] on all sides.
///
/// The [Container] widget has a [ListTile] widget as child, which is
/// configured with a subtitleTextStyle of a [TextStyle] with a color of
/// [Theme.of(context).colorScheme.onSecondaryContainer].
///
/// The [ListTile] widget has an [Icon] widget as leading, which is
/// configured with an [Icons.lightbulb_outline_rounded] icon, a size of
/// [SenseiConst.iconSize], and a color of
/// [Theme.of(context).colorScheme.onSecondaryContainer].
///
/// The [ListTile] widget has a [Text] widget as title, which is configured
/// with the [AppLocalizations.of(context).AppName] text, and a style of a [TextStyle] with
/// a color of [Theme.of(context).colorScheme.onSecondaryContainer].
///
/// The [ListTile] widget has a [Text] widget as subtitle, which is
/// configured with the [AppLocalizations.of(context).AppDescription] text.
Widget build(final BuildContext context) => FadeTransition(
  opacity: _animation,
  child: SizeTransition(
    sizeFactor: _animation,
    axisAlignment: -1.0,
    child: GestureDetector(
      onDoubleTap: _onClosePressed,
      child: Container(
        margin: const EdgeInsets.only(bottom: SenseiConst.margin),
        padding: const EdgeInsets.all(SenseiConst.padding),
        decoration: BoxDecoration(
          border: Border.all(
            color: Theme.of(context).colorScheme.outline.withAlpha(0x80),
          ),
          borderRadius: BorderRadius.circular(SenseiConst.outBorderRadius),
          color: Theme.of(context).colorScheme.surfaceContainer,
        ),
        child: ListTile(
          subtitleTextStyle: TextStyle(
            color: Theme.of(context).colorScheme.onSurface,
          ),
          leading: Icon(
            Icons.lightbulb_outline_rounded,
            size: SenseiConst.iconSize,
            color: Theme.of(context).colorScheme.onSurface,
          ),
          title: Text(AppLocalizations.of(context)!.appName),
          subtitle: Text(
            AppLocalizations.of(context)!.appDescription,
            style: AppTextStyle(context).subtitle,
          ),
        ),
      ),
    ),
  ),
);