flutter

Flutter学习笔记22-SingleChildScrollV

2020-10-28  本文已影响0人  zombie

SingleChildScrollView只能接收一个子组件。源码如下:

SingleChildScrollView({
  this.scrollDirection = Axis.vertical, //滚动方向,默认是垂直方向
  this.reverse = false, 
  this.padding, 
  bool primary, 
  this.physics, 
  this.controller,
  this.child,
})

因为SingleChildScrollView不支持基于Sliver的延迟实例化模型,SingleChildScrollView只应在内容不会超过屏幕太多时使用,所以如果预计视口可能包含超出屏幕尺寸太多的内容时,那么使用SingleChildScrollView性能很差,应该使用一些支持Sliver延迟加载的可滚动组件,如ListView。代码示例:

class SingleChildScrollViewDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    String str = "123456789987654321";
    // 显示进度条
    return Scrollbar(
      child: SingleChildScrollView(
        padding: EdgeInsets.all(16.0),
        child: Center(
          child: Column(
            // 动态创建一个List<Widget>
            children: str
                .split("")
                .map((c) => Text(c, textScaleFactor: 2.0))
                .toList(),
          ),
        ),
      ),
    );
  }
}
代码运行效果图:

代码传送门

上一篇下一篇

猜你喜欢

热点阅读