Ejemplo n.º 1
0
 public SmartRefreshHeader(
     int mode,
     RefreshHeaderType type = RefreshHeaderType.activityIndicator,
     Key key = null
     ) : base(key: key)
 {
     this.mode = mode;
     this.type = type;
 }
Ejemplo n.º 2
0
        Widget _buildOther()
        {
            CrossFadeState?crossFadeState;
            string         refreshText;
            AnimatingType  type;

            switch (this.mode)
            {
            case 0: {
                refreshText    = "探索新鲜内容";
                type           = AnimatingType.stop;
                crossFadeState = CrossFadeState.showFirst;
                break;
            }

            case 1: {
                refreshText    = "探索新鲜内容";
                type           = AnimatingType.stop;
                crossFadeState = CrossFadeState.showFirst;
                break;
            }

            case 2: {
                refreshText    = "";
                type           = AnimatingType.repeat;
                crossFadeState = CrossFadeState.showSecond;
                break;
            }

            case 3: {
                refreshText    = "刷新成功";
                type           = AnimatingType.stop;
                crossFadeState = CrossFadeState.showFirst;
                break;
            }

            case 4: {
                refreshText    = "刷新失败";
                type           = AnimatingType.stop;
                crossFadeState = CrossFadeState.showFirst;
                break;
            }

            default: {
                refreshText    = "";
                type           = AnimatingType.stop;
                crossFadeState = null;
                break;
            }
            }

            List <string> images = new List <string>();

            for (int index = 0; index < 237; index++)
            {
                images.Add($"image/refresh-loading/refresh-loading{index}");
            }

            Widget child = new AnimatedCrossFade(
                firstChild: _buildText(text: refreshText),
                secondChild: new FrameAnimationImage(
                    images: images,
                    type: type
                    ),
                duration: TimeSpan.FromMilliseconds(300),
                crossFadeState: crossFadeState,
                alignment: Alignment.center,
                layoutBuilder: _layoutBuilder
                );

            return(new Container(
                       height: 56.0f,
                       alignment: Alignment.center,
                       child: child
                       ));
        }