所以我有一个SliverPersistentHeader,当我向下滚动并使其中的文本开始增加大小时,我希望它能够扩展/过度增长,例如在iPhone的“联系人”应用程序中。该怎么做?
答案 0 :(得分:0)
使用geaderDelegate
例如
class _HeaderDelegate extends SliverPersistentHeaderDelegate {
final double minHeight;
final double maxHeight;
final Widget child;
_HeaderDelegate({
@required this.minHeight,
@required this.maxHeight,
@required this.child,
});
@override
Widget build(
BuildContext context, double shrinkOffset, bool overlapsContent) {
return SizedBox.expand(child: child);
}
@override
double get maxExtent => math.max(maxHeight, minHeight);
@override
double get minExtent => minHeight;
@override
bool shouldRebuild(_HeaderDelegate oldDelegate) {
return maxHeight != oldDelegate.maxHeight ||
minHeight != oldDelegate.minHeight ||
child != oldDelegate.child;
}
}
SliverPersistentHeader(
delegate: _HeaderDelegate(
minHeight: 50,
maxHeight: 150,
child: Container(
color: Colors.blue,
child: Center(
child: Column(
children: <Widget>[
Text('list ' , style: TextStyle(fontSize: 30),),
],mainAxisAlignment: MainAxisAlignment.center,
),
),
)),
pinned: true,
),