SingleChildScrollView 类似与Android中的ScrollView,只能拥有一个子View。
使用场景
SingleChildScrollView不支持Sliver的延迟优化加载模型,所以只适用于不会超出屏幕太多的的时候使用。
构造函数
Key key,
this.scrollDirection = Axis.vertical,
this.reverse = false,
this.padding,
bool primary,
this.physics,
this.controller,
this.child,
this.dragStartBehavior = DragStartBehavior.start,
this.clipBehavior = Clip.hardEdge,
this.restorationId,
})
主要参数说明
scrollDirection:滑动方向,垂直:Axis.vertical;水平:Axis.horizontal。
reverse:按照阅读相反方向滑动,举个例子:水平滑动数据1…100,如果reverse:true,那么0在左边开始位置,滑动也是从左侧向右侧开始滑动。如果reverse:false,那么100展示在右边,滑动也是从右侧开始向左侧滑动。
Sample
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/poitop/PoiApi.dart';
class HomePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _HomePageStqate();
}
}
class _HomePageStqate extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("SingleChildScrollView"),
),
body: Container(
color: Colors.blue,
width: double.infinity,
height: double.infinity,
child: CupertinoScrollbar(
child:SingleChildScrollView(
scrollDirection: Axis.vertical,
reverse: false,
physics: BouncingScrollPhysics(),
child: Column(
children: getListItems(),
),
),
),
)
);
}
List<Widget> getListItems(){
List<Widget>list=new List();
for(int i=0;i<100;i++){
list.add(getTextView(i));
}
return list;
}
Widget getTextView(int index){
return Text("DATA$index");
}
}