gpt4 book ai didi

flutter - 如何在 flutter 中仅向下滚动?

转载 作者:行者123 更新时间:2023-12-05 04:52:29 32 4
gpt4 key购买 nike

我有一个网页浏览滚动条,可以上下滚动。一旦向下滚动不能向上滚动,我可以让它只向下滚动吗?我用谷歌搜索,但没有找到任何有用的东西

更新:

class _ScrollDownOnlyState extends State<ScrollDownOnly> {
bool checkDir = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Down scroll"),
),
body: PageView.builder(
scrollDirection: Axis.vertical,
physics: checkDir ? const NeverScrollableScrollPhysics() : const AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) {
print("checl $checkDir");
return GestureDetector(
onPanUpdate: (details) {
print(details.delta.dy);
if (details.delta.dy > 0) {
setState(() {
checkDir = true;
});
}
if (details.delta.dy < 0) {
// set your var
setState(() {
checkDir = false;
});
}
},
child: Container(
margin: EdgeInsets.only(top: 20),
color: Colors.pink,
child: Center(
child: Text(
"${index + 1}",
style: TextStyle(color: Colors.white, fontSize: 30),
),
),
),
);
},
itemCount: 50,
),
);
}
}

最佳答案

例如,您可以使用 var scrollDir 并将其应用于 PageView

physics: scrollDir ? const  NeverScrollableScrollPhysics() : const AlwaysScrollableScrollPhysics(),

使用 NeverScrollableScrollPhysics() 可以阻止滚动功能。使用 AlwaysScrollableScrollPhysics(),您将激活滚动功能。

您可以使用检测向上或向下滚动的 GestureDetector 获得完全控制。它可能看起来像这样:

PageView(
children: <Widget>[
// Add children here
GestureDetector(
onPanUpdate: (details) {
if (details.delta.dy > 0) {
setState(() {
checkDir = true;
});
}
if (details.delta.dy < 0) {
// set your var
checkDir = false;
}
},
child: Container(child: Text('MY WIDGETS')))
],
physics: checkDir
? const NeverScrollableScrollPhysics()
: const AlwaysScrollableScrollPhysics(),
)),

滚动物理学文档:https://api.flutter.dev/flutter/widgets/ScrollPhysics-class.html

GestureDetector 文档:https://api.flutter.dev/flutter/widgets/GestureDetector-class.html

关于flutter - 如何在 flutter 中仅向下滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66476476/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com