public static ScrollController of(BuildContext context)
        {
            PrimaryScrollController result =
                (PrimaryScrollController)context.inheritFromWidgetOfExactType(typeof(PrimaryScrollController));

            return(result == null ? null : result.controller);
        }
Exemplo n.º 2
0
        public override Widget build(BuildContext context)
        {
            AxisDirection axisDirection = this._getDirection(context);
            Widget        contents      = this.child;

            if (this.padding != null)
            {
                contents = new Padding(
                    padding: this.padding,
                    child: contents);
            }

            ScrollController scrollController = this.primary
                ? PrimaryScrollController.of(context)
                : this.controller;

            Scrollable scrollable = new Scrollable(
                axisDirection: axisDirection,
                controller: scrollController,
                physics: this.physics,
                viewportBuilder: (BuildContext subContext, ViewportOffset offset) => {
                return(new _SingleChildViewport(
                           axisDirection: axisDirection,
                           offset: offset,
                           child: contents));
            }
                );

            if (this.primary && scrollController != null)
            {
                return(PrimaryScrollController.none(child: scrollable));
            }

            return(scrollable);
        }
Exemplo n.º 3
0
        public override Widget build(BuildContext context)
        {
            List <Widget> slivers       = this.buildSlivers(context);
            AxisDirection axisDirection = this.getDirection(context);

            ScrollController scrollController = this.primary ? PrimaryScrollController.of(context) : this.controller;

            Scrollable scrollable = new Scrollable(
                axisDirection: axisDirection,
                controller: scrollController,
                physics: this.physics,
                viewportBuilder: (viewportContext, offset) =>
                this.buildViewport(viewportContext, offset, axisDirection, slivers)
                );

            return(this.primary && scrollController != null
                ? (Widget)PrimaryScrollController.none(child: scrollable)
                : scrollable);
        }
Exemplo n.º 4
0
        public override Widget build(BuildContext context)
        {
            List <Widget> slivers       = buildSlivers(context);
            AxisDirection axisDirection = getDirection(context);

            ScrollController scrollController = primary ? PrimaryScrollController.of(context) : controller;

            Scrollable scrollable = new Scrollable(
                dragStartBehavior: dragStartBehavior,
                axisDirection: axisDirection,
                controller: scrollController,
                physics: physics,
                viewportBuilder: (viewportContext, offset) =>
                buildViewport(viewportContext, offset, axisDirection, slivers)
                );

            Widget scrollableResult = primary && scrollController != null
                ? (Widget)PrimaryScrollController.none(child: scrollable)
                : scrollable;

            if (keyboardDismissBehavior == ScrollViewKeyboardDismissBehavior.onDrag)
            {
                return(new NotificationListener <ScrollUpdateNotification>(
                           child: scrollableResult,
                           onNotification: (ScrollUpdateNotification notification) => {
                    FocusScopeNode focusScope = FocusScope.of(context);
                    if (notification.dragDetails != null && focusScope.hasFocus)
                    {
                        focusScope.unfocus();
                    }

                    return false;
                }
                           ));
            }
            else
            {
                return(scrollableResult);
            }
        }
Exemplo n.º 5
0
        public static ScrollController of(BuildContext context)
        {
            PrimaryScrollController result = context.dependOnInheritedWidgetOfExactType <PrimaryScrollController>();

            return(result?.controller);
        }