【发布时间】:2020-02-11 06:13:48
【问题描述】:
问题:
最初我禁用了ListView 滚动,并希望在 3 秒后启用它。当应用程序启动并且您继续滚动它大约 5 秒钟(手指不离开屏幕)时,ListView 不会滚动。
但是它应该滚动,因为我在第 3 秒启用滚动,控制台确认 ListView enabled 但我仍然无法滚动它。
代码:
bool _enabled = false; // scrolling disabled initially
@override
void initState() {
super.initState();
Timer(Duration(seconds: 3), () {
print("Scrolling enabled");
setState(() => _enabled = true); // scrolling enabled after 3 seconds
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
physics: _enabled ? ClampingScrollPhysics() : NeverScrollableScrollPhysics(),
itemBuilder: (_, i) => ListTile(title: Text("Item $i")),
),
);
}
【问题讨论】:
-
我检查你的代码它一直在滚动。
-
我的手机无论是否抬起手指都可以正常工作。我没有遇到 5 秒停止或任何滚动问题。
-
@HussnainHaidar 感谢您的评论,实际上您需要做的就是在应用程序启动的那一刻开始滚动(在接下来的 10 秒内不要将手指从屏幕上移开一次),您会看到
ListView没有滚动。 -
listview 构造函数中还有一个名为 primary 的参数,尝试启用禁用该参数。
-
还有两个小部件 ignorePointer 和吸收指针尝试将您的列表视图包装在其中一个小部件中。
标签: flutter dart flutter-layout