anchor.diff:        builder: (context, store) {
           return new Scaffold(
             backgroundColor: Color(GSYColors.mainBackgroundColor),
  -          appBar: new AppBar(
  -            flexibleSpace: _renderHeader(store),
  -            backgroundColor: Color(GSYColors.mainBackgroundColor),
  -            leading: new Container(),
  -            elevation: 0.0,
  -          ),
             ///采用目前采用纯 bloc 的 rxdart(stream) + streamBuilder
             body: StreamBuilder<List<TrendingRepoModel>>(
                 stream: trendBloc.stream,
                 builder: (context, snapShot) {
  -                return new RefreshIndicator(
  +                return new NestedScrollViewRefreshIndicator(
                     key: refreshIndicatorKey,
  +                  child: NestedScrollView(
  +                    controller: scrollController,
  +                    physics: const AlwaysScrollableScrollPhysics(),
  +                    headerSliverBuilder: (context, innerBoxIsScrolled) {
  +                      return _sliverBuilder(context, innerBoxIsScrolled, store);
  +                    },
  +                    body: (snapShot.data == null || snapShot.data.length == 0)
  +                        ? _buildEmpty()
  +                        : new ListView.builder(
  +                            physics: const AlwaysScrollableScrollPhysics(),
  +                            itemBuilder: (context, index) {
  +                              return _renderItem(snapShot.data[index]);
  +                            },
  +                            itemCount: snapShot.data.length,
  +                          ),
  +                  ),
                     onRefresh: requestRefresh,
  -                  child: (snapShot.data == null || snapShot.data.length == 0)
  -                      ? _buildEmpty()
  -                      : new ListView.builder(
  -                          physics: const AlwaysScrollableScrollPhysics(),
  -                          itemBuilder: (context, index) {
  -                            return _renderItem(snapShot.data[index]);
  -                          },
  -                          itemCount: snapShot.data.length,
  -                        ),
                   );
                 }),
           );
         },
       );
  +  }
  +
  +  List<Widget> _sliverBuilder(BuildContext context, bool innerBoxIsScrolled, Store store) {
  +    return <Widget>[
  +      ///动态放大缩小的选择案件
  +      SliverPersistentHeader(
  +        pinned: true,
  +        delegate: _InfoHeaderDelegate(
  +            maxHeight: 65,
  +            minHeight: 65,
  +            changeSize: true,
  +            snapConfig: FloatingHeaderSnapConfiguration(
  +              vsync: this,
  +              curve: Curves.bounceInOut,
  +              duration: const Duration(milliseconds: 10),
  +            ),
  +            builder: (BuildContext context, double shrinkOffset,
  +                bool overlapsContent) {
  +              ///根据数值计算偏差
  +              var lr = 10 - shrinkOffset / 65 * 10;
  +              var radius = Radius.circular(4 - shrinkOffset / 65 * 4);
  +              return SizedBox.expand(
  +                child: Padding(
  +                  padding: EdgeInsets.only(top: lr, bottom: 15, left: lr, right: lr),
  +                  child: _renderHeader(store, radius),
  +                ),
  +              );
  +            }),
  +      ),
  +    ];
     }
   }
   
  
positive.code:   _TrendPageState createState() => _TrendPageState();
  }
  
  class _TrendPageState extends State<TrendPage> with AutomaticKeepAliveClientMixin<TrendPage> {
    static TrendTypeModel selectTime = null;
  
    static TrendTypeModel selectType = null;
  
    final GlobalKey<RefreshIndicatorState> refreshIndicatorKey = new GlobalKey<RefreshIndicatorState>();
  
    final TrendBloc trendBloc = new TrendBloc();
  
  
negative.code:   _renderItem(e) {
      ReposViewModel reposViewModel = ReposViewModel.fromTrendMap(e);
      return new ReposItem(reposViewModel, onPressed: () {
        NavigatorUtils.goReposDetail(
            context, reposViewModel.ownerName, reposViewModel.repositoryName);
      });
    }
  
    _renderHeader(Store<GSYState> store, Radius radius) {
      if (selectTime == null && selectType == null) {
        return Container();
      }
      return new GSYCardItem(
        color: store.state.themeData.primaryColor,
        margin: EdgeInsets.all(0.0),
        shape: new RoundedRectangleBorder(
          borderRadius: BorderRadius.all(radius),
        ),
        child: new Padding(
          padding:
              new EdgeInsets.only(left: 0.0, top: 5.0, right: 0.0, bottom: 5.0),
          child: new Row(
            children: <Widget>[
              _renderHeaderPopItem(selectTime.name, trendTime(context),
                  (TrendTypeModel result) {
                if (trendBloc.isLoading) {
                  Fluttertoast.showToast(
                      msg: CommonUtils.getLocale(context).loading_text);
                  return;
                }
                scrollController
                    .animateTo(0,
                    duration: Duration(milliseconds: 200),
                    curve: Curves.bounceInOut)
                    .then((_) {
                  setState(() {
                    selectTime = result;
                  });
                  _showRefreshLoading();
                });
              }),
              new Container(
                  height: 10.0, width: 0.5, color: Color(GSYColors.white)),
              _renderHeaderPopItem(selectType.name, trendType(context),
                  (TrendTypeModel result) {
                if (trendBloc.isLoading) {
                  Fluttertoast.showToast(
                      msg: CommonUtils.getLocale(context).loading_text);
                  return;
                }
                scrollController
                    .animateTo(0,
                    duration: Duration(milliseconds: 200),
                    curve: Curves.bounceInOut)
                    .then((_) {
                  setState(() {
                    selectType = result;
                  });
                  _showRefreshLoading();
                });
              }),
            ],
          ),
  