Flutter网站:SliverPersistentHeader行为

时间:2019-09-28 13:40:10

标签: flutter dart flutter-sliver flutter-web

我正在关注此tutorial,但使用的是波动性网页

我的代码遇到了这个问题:

  @override
  Widget build(BuildContext context) {
    final Size _size = MediaQuery.of(context).size;
    return Center(
        child: Container(
          height: _size.height,
          width: maxWidth(_size),
          color: indigo,
          child:  CustomScrollView(
            slivers: <Widget>[
              SliverPersistentHeader(
                pinned: true,
                floating: true,
                delegate: SliverHeaderDelegate(
                  minExtent: _size.height*0.1,
                  maxExtent: _size.height*0.5),),
            SliverFillRemaining()
          ],),),);}}

标头委托为:

class SliverHeaderDelegate implements SliverPersistentHeaderDelegate {
    SliverHeaderDelegate({
    this.minExtent,
    @required this.maxExtent,
  });
  final double minExtent;
  final double maxExtent;

  @override
  Widget build(BuildContext context, double shrinkOffset, bool overlapsContent)=> 
    Center(
      child: Container(
          child:Text('test',textScaleFactor: 5,),
    );

  @override
  bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate)=> true;

  @override
  FloatingHeaderSnapConfiguration get snapConfiguration => null;
}

给出 this 结果

但是如果我将SliverPersistentHeader替换为此:

  SliverAppBar( pinned: true,
          expandedHeight: _size.height*0.5,
          flexibleSpace: FlexibleSpaceBar(
            title: Text('test',textScaleFactor: 5,),
          ),),

如您看到的 here

,结果将发生巨大变化

知道为什么以及如何纠正它吗? 谢谢

0 个答案:

没有答案