滑动布局-ScrollView、SingleChildScrollView 、ListView 、GridView
可滑动的Widget-ScrollView
我在用Column进行布局的时候,由于子节点过多,导致出现了OverFlow的提示,这个就是告诉我们内容超出范围了,这个在Android里来做就不会给你提示了,他会直接截取掉,不显示,为了解决这个错误我第一时间想到的就是像Android一样给他套一个ScrollView,Flutter的ScrollView不是一个可以直接使用的滑动widget,他是一个抽象类,这里记录一下ScrollView的一些属性,也是相当于记录了ScrollView子类的一些共性参数
ScrollView({
Key key,
this.scrollDirection = Axis.vertical,
this.reverse = false,
this.controller,
bool primary,
ScrollPhysics physics,
this.shrinkWrap = false,
this.center,
this.anchor = 0.0,
this.cacheExtent,
this.semanticChildCount,
this.dragStartBehavior = DragStartBehavior.start,
})
scrollDirection: 设置滑动的方向,水平方向或者竖直方向
reverse:是否安装阅读方向相反的方向滑动,默认为false,这个参数就是说我的初始位置是在哪,这个会根据语言环境来改变的,比说国语的阅读方向是从左到右,那么他的起始点就在左边,如果将参数设置为true,表示按阅读方向相反的方向滑动,那么他的起始点就在右边,直接看图可能会好一些
SingleChildScrollView(
reverse: true,
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Text(
"编号:",
style: TextStyle(color: Colors.red),
),
Text("头0000000000001 "),
Text("0000000000001 00000000000010000000000001000000000000100000000000010000000000001000000000000100000000000010000000000001000000000000100000000000010000000000001000000000000尾")
,
],
),
)
- 默认的情况,不设置或设置为false的情况下
- 设置为true的情况下,我一进来看到的就是尾部,就是Row中的最后端
controller:接收一个ScrollController(默认是用PrimaryScrollController)这个参数是用于控制滚动位置和监听滚动事件,具体用法看后续
primary :是否使用默认的PrimaryScrollController
physics :决定滑动widget如何响应用户的操作,由于滑动列表滑动到边界的时候会出现一些效果,Android与iOS是不一样的,所以我们可以通过这个参数来设置统一效果ClampingScrollPhysics:Android下微光效果。BouncingScrollPhysics:iOS下弹性效果
shrinkWrap:该属性决定是否根据子widget的长度来决定滚动范围,默认情况下为false,默认情况下,滚动范围会尽可能的占据位置,但是如果滚动视图