虽然Flutter没有直接提供根据Widget的Key或位置来滚动的方法,但你可以通过计算目标Widget在滚动视图中的偏移量,然后使用ScrollController的animateTo或jumpTo方法来滚动到该位置。不过,更常见和简单的方法是,如果你知道目标Widget在列表中的索引,可以直接使用ScrollController的scrollTo
默认的话, Widget树有一个 PrimaryScrollController,如果子树中的可滚动组件没有显示的指定 controller, 并且 primary 属性值为 true,可滚动组件会默认使用这个 controller viewportBuilder 构建 Viewport 的回调, 当用户滑动时,会回调这个对象, 传递一个 Vi...
Widgetbuild(BuildContextcontext) { returnScaffold( body:NestedScrollView( headerSliverBuilder: (context,innerBoxIsScrolled) { return[ SliverAppBar( title:constText("嵌套 ListView"), pinned:true, forceElevated:innerBoxIsScrolled, ), buildSliverList(5), ]; }, body:ListView.builder( padding:constE...
在Flutter中,我们也有对应的列表Widget,就是ListView。 2.1. ListView基础 2.1.1 ListView基本使用 ListView可以沿一个方向(垂直或水平方向,默认是垂直方向)来排列其所有子Widget。 一种最简单的使用方式是直接将所有需要排列的子Widget放在ListView的children属性中即可。 我们来看一下直接使用ListView的代码演练: 为了让...
SingleChildScrollView({this.scrollDirection=Axis.vertical,//滚动方向,默认是垂直方向this.reverse=false,this.padding,bool primary,this.physics,this.controller,this.child,}) 只容纳一个widget,当空间大小不够的时候,里面的widget可以在主轴上滚动。 你如果需要在两个方向上收缩包装(在滚动轴和横轴)例如 dialog或...
ScrollController({doubleinitialScrollOffset = 0.0,//初始滚动位置this.keepScrollOffset =true,//是否保存滚动位置... }) 我们介绍一下ScrollController常用的属性和方法: offset:可滚动Widget当前滚动的位置。 jumpTo(double offset)、animateTo(double offset,...):这两个方法用于跳转到指定的位置,它们不同之处在于...
// SingleChildScrollView class NewSingleChildScrollView extends StatelessWidget { @override Widget build(BuildContext context) { String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return new Scaffold( appBar: AppBar(title: Text('SingleChildScrollView学习')), body: Scrollbar( child: SingleChildScrollView( pad...
一统天下 flutter - widget 滚动类: SingleChildScrollView, Scrollbar - 可滚动组件,滚动条 示例如下: lib\widget\scroll\single_child_scroll_view.dart /* * SingleChildScrollView - 可滚动组件(让一个子可以滚动) * Scrollbar - 滚动条 * * 一般在一个 Scrollbar 下放一个 SingleChildScrollView,默认的 Sc...
Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('scroll to item Demo'), ), body: ListView( controller: scrollController, children: [ ...List<int>.generate(100, (index) => index) .map( (e) => Container( ...
(context);_physics=_configuration.getScrollPhysics(context);if(widget.physics!=null)_physics=widget.physics.applyTo(_physics);final ScrollController controller=widget.controller;final ScrollPosition oldPosition=position;if(oldPosition!=null){controller?.detach(oldPosition);scheduleMicrotask(oldPosition.dispose...