ListView的physics是ScrollPhysics类:其常见子类有 BouncingScrollPhysics:允许滚动超出边界,但之后内容会反弹回来。 ClampingScrollPhysics: 防止滚动超出边界,夹住 。 AlwaysScrollableScrollPhysics:始终响应用户的滚动。 NeverScrollableScrollPhysics:不响应用户的滚动。
在自测时发现过这样一个问题:当 listView 里面的 children 过少时, 整个 listView 压根不能滑动, physics 里面的 createBallisticSimulation 实现得再完美,也触发不了其中的回调的。为了避免这种情况,比较粗暴的方法是,在 children 加空白 Container,以充满 listView 固有的宽度或者高度,来让 listView 满足可滑动的前提。
classMyContextendsStatelessWidget{@overrideWidget build(BuildContext context) {returnContainer(height:200.0,child:new ListView(// 水平排列scrollDirection: Axis.horizontal,children: <Widget>[ Container(width:220.0,height:200.0,color:Color(0xFFFFB6C1),// 外边距 左上右下,跟css不一样哈margin: EdgeInsets...
shrinkWrap: 该属性将决定列表的长度是否仅包裹其内容的长度。 当ListView嵌在一个无限长的容器组件中时, shrinkWrap必须为true,否则Flutter会给出警告; padding: 列表内边距; itemExtent: 子元素长度。 当列表中的每一项长度是固定的情况下可以指定该值, 有助于提高列表的性能 (因为它可以帮助ListView在未实际渲染子...
ListView({ Key key, Axis scrollDirection = Axis.vertical,//设置滑动方向 Axis.horizontal 水平 默认 Axis.vertical 垂直 bool reverse = false,//是否倒序显示 默认正序 false 倒序true ScrollController controller,//滑动监听 bool primary,//false,如果内容不足,则用户无法滚动 而如果[primary]为true,它们总是...
/// scroll view needs to be recomputed whenever the scroll position changes. /// /// Defaults to false. physics 这个字段表示用户在list上的滑动响应,通常情况下,内容不足设置高度时,没有滑动效果,这也是通常设计。 在我们的场景中, listview的列表项中也有一个子列表,同方向上如果子列表响应了滑动,就会...
为了使列表可滚动,你需要在ListView的末尾添加一个ScrollPhysics对象。你可以使用physics属性来设置滚动行为。 处理滚动事件如果你需要在用户滚动列表时执行某些操作,可以使用onScroll回调函数。onScroll函数会返回一个ScrollEvent对象,你可以从中获取滚动的相关信息。 自定义样式你可以使用ListView的itemExtent属性来指定每个...
ListView({...//可滚动widget公共参数Axis scrollDirection=Axis.vertical,bool reverse=false,ScrollController controller,bool primary,ScrollPhysics physics,EdgeInsetsGeometry padding,//ListView各个构造函数的共同参数double itemExtent,bool shrinkWrap=false,bool addAutomaticKeepAlives=true,bool addRepaintBoundaries=tr...
ScrollPhysics physics,bool shrinkWrap = false, shrinkWrap 先说这个字段,默认是flase,就是说listview在使用的过程中,需要指定一个固定高度值,或者占据最大高度, 必须要有个边界范围,否则内容无法展示,在listview的源码中也有相关解释。 /// Whether the extent of the scroll view in the [scrollDirection] should...
ListView({Key?key,Axis scrollDirection=Axis.vertical,bool reverse=false,ScrollController?controller,bool?primary,ScrollPhysics?physics,bool shrinkWrap=false,EdgeInsetsGeometry?padding,this.itemExtent,this.prototypeItem,bool addAutomaticKeepAlives=true,bool addRepaintBoundaries=true,bool addSemanticIndexes=true,...