(flutter)无限滚动`ListView.builder`具有有限的内容
问题内容:
1.问题
如何使我ListView.builder
能够滚动到顶部和底部的空白区域?
例如,我有自定义部件的清单,我想用户能够获得名单上的顶级显卡-这是在屏幕的顶部-滚动到更接近他的拇指,而Flutter
呈现顶部空间有空的背景。
2.到目前为止我尝试过的
我的代码的基本形状是ListView.builder
构造函数的基本实现:
ListView.builder(
itemCount: widgetsList.length,
itemBuilder: (context, index){
return widgetsList[index];
},
),
到目前为止,我尝试摆弄的一些ListView.builder
属性以及一些解决方法:
- 起初,我以为,要么
shrinkWrap: true
或physics: AlwaysScrollableScrollPhysics()
-也许我需要设置parent
的参数AlwaysScrollableScrollPhysics()
?-可以胜任,但似乎都没有。 - 我还尝试通过
Container
在列表的顶部和底部创建空s,并添加类似的内容dragStartBehavior: DragStartBehavior.values[1]
(我不认为这.values
实际上是您使用该属性的方式)使列表从第二个开始,来人为地做到这一点。价值,但没有用。
问题答案:
您可以通过“
Container
解决方法”来实现。您可以使用ScrollController
,并使其initialScrollOffset
顶端位于顶部Container
。这是我后来才通过另一个StackOverflow问题发现的。
ScrollController
在小部件的类中声明您的内容。
ScrollController scrollController = ScrollController(
initialScrollOffset: 10, // or whatever offset you wish
keepScrollOffset: true,
);
- 将控制器添加到您的
ListView
ListView.builder(
controller: scrollController,
itemCount: widgetsList.length,
itemBuilder: (context, index){
return widgetsList[index];
},
),
此外,您甚至可能想为背景滚动动作创建动画。这可以通过使用.animateTo
小部件的中的方法来实现initState
。