anchor.diff:    _renderItem(e) {
       ReposViewModel reposViewModel = ReposViewModel.fromTrendMap(e);
       return new ReposItem(reposViewModel, onPressed: () {
  -      NavigatorUtils.goReposDetail(context, reposViewModel.ownerName, reposViewModel.repositoryName);
  +      NavigatorUtils.goReposDetail(
  +          context, reposViewModel.ownerName, reposViewModel.repositoryName);
       });
     }
   
  -  _renderHeader(Store<GSYState> store) {
  -    if (selectType == null && selectType == null) {
  +  _renderHeader(Store<GSYState> store, Radius radius) {
  +    if (selectTime == null && selectType == null) {
         return Container();
       }
       return new GSYCardItem(
         color: store.state.themeData.primaryColor,
  -      margin: EdgeInsets.all(10.0),
  +      margin: EdgeInsets.all(0.0),
         shape: new RoundedRectangleBorder(
  -        borderRadius: BorderRadius.all(Radius.circular(4.0)),
  +        borderRadius: BorderRadius.all(radius),
         ),
         child: new Padding(
  -        padding: new EdgeInsets.only(left: 0.0, top: 5.0, right: 0.0, bottom: 5.0),
  +        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) {
  +            _renderHeaderPopItem(selectTime.name, trendTime(context),
  +                (TrendTypeModel result) {
                 if (trendBloc.isLoading) {
  -                Fluttertoast.showToast(msg: CommonUtils.getLocale(context).loading_text);
  +                Fluttertoast.showToast(
  +                    msg: CommonUtils.getLocale(context).loading_text);
                   return;
                 }
  -              setState(() {
  -                selectTime = result;
  +              scrollController
  +                  .animateTo(0,
  +                  duration: Duration(milliseconds: 200),
  +                  curve: Curves.bounceInOut)
  +                  .then((_) {
  +                setState(() {
  +                  selectTime = result;
  +                });
  +                _showRefreshLoading();
                 });
  -              _showRefreshLoading();
               }),
  -            new Container(height: 10.0, width: 0.5, color: Color(GSYColors.white)),
  -            _renderHeaderPopItem(selectType.name, trendType(context), (TrendTypeModel result) {
  +            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);
  +                Fluttertoast.showToast(
  +                    msg: CommonUtils.getLocale(context).loading_text);
                   return;
                 }
  -              setState(() {
  -                selectType = result;
  +              scrollController
  +                  .animateTo(0,
  +                  duration: Duration(milliseconds: 200),
  +                  curve: Curves.bounceInOut)
  +                  .then((_) {
  +                setState(() {
  +                  selectType = result;
  +                });
  +                _showRefreshLoading();
                 });
  -              _showRefreshLoading();
               }),
             ],
           ),
  
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:     TrendTypeModel("C#", "c%23"),
    ];
  }
  
  ///动态头部处理
  class _InfoHeaderDelegate extends SliverPersistentHeaderDelegate {
    _InfoHeaderDelegate(
        {@required this.minHeight,
        @required this.maxHeight,
        @required this.snapConfig,
        this.child,
        this.builder,
        this.changeSize = false});
  
    final double minHeight;
    final double maxHeight;
    final Widget child;
    final Builder builder;
    final bool changeSize;
    final FloatingHeaderSnapConfiguration snapConfig;
    AnimationController animationController;
  
    @override
    double get minExtent => minHeight;
  
    @override
    double get maxExtent => math.max(maxHeight, minHeight);
  
    @override
    Widget build(
        BuildContext context, double shrinkOffset, bool overlapsContent) {
      if (builder != null) {
        return builder(context, shrinkOffset, overlapsContent);
      }
      return child;
    }
  
    @override
    bool shouldRebuild(_InfoHeaderDelegate oldDelegate) {
      return true;
    }
  
    @override
    FloatingHeaderSnapConfiguration get snapConfiguration => snapConfig;
  }
  
  typedef Widget Builder(
      BuildContext context, double shrinkOffset, bool overlapsContent);
  