buildSliver method

Widget buildSliver(
  1. BuildContext context,
  2. NavigationControlData? data
)

Implementation

Widget buildSliver(BuildContext context, NavigationControlData? data) {
  final theme = Theme.of(context);
  final scaling = theme.scaling;
  return AnimatedValueBuilder(
    duration: kDefaultDuration,
    curve: Curves.easeInOut,
    value: (data?.expanded ?? true) ? 1.0 : 0.0,
    child: buildChild(context, data),
    builder: (context, value, child) {
      return SliverPersistentHeader(
        pinned: pinned,
        floating: floating,
        delegate: _NavigationLabelDelegate(
          maxExtent: 48 * scaling * value,
          minExtent: 48 * scaling * value,
          child: GestureDetector(
            behavior: HitTestBehavior.translucent,
            onTap: () {
              Scrollable.ensureVisible(
                context,
                duration: kDefaultDuration,
                curve: Curves.easeInOut,
              );
            },
            child: Container(
              alignment: alignment ?? AlignmentDirectional.centerStart,
              padding:
                  padding ?? EdgeInsets.symmetric(horizontal: 16 * scaling),
              child: child!.semiBold().large(),
            ),
          ),
        ),
      );
    },
  );
}