是否可以让 ListView 只能使用 ScrollController 而不能使用触摸屏滚动?
问问题
93368 次
7 回答
204
如评论中所述,NeverScrollableScrollPhysics 类将执行此操作:
NeverScrollableScrollPhysics 类
不允许用户滚动的滚动物理。
于 2018-05-26T16:10:35.977 回答
188
在 ListView 小部件内,使用
physics: const NeverScrollableScrollPhysics()
于 2018-07-16T17:27:56.647 回答
39
您可以primary: false
在 ListView Widget中添加
默认匹配平台约定。此外,如果primary为false,那么如果没有足够的内容滚动,用户将无法滚动,而如果primary为true,他们总是可以尝试滚动。
更多信息,请查看官方文档
于 2019-08-28T06:23:53.330 回答
15
启用和禁用滚动视图的条件语句。
physics: chckSwitch ? const NeverScrollableScrollPhysics() : const AlwaysScrollableScrollPhysics(),
于 2019-11-19T07:40:43.067 回答
9
为我工作
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: const ClampingScrollPhysics(),
...
于 2020-11-29T02:08:22.427 回答
2
NestedScrollView 呢?
bottomNavigationBar: _buildBottomAppBar(),
body: Container(
child: NestedScrollView(
physics: NeverScrollableScrollPhysics(),
controller: _scrollViewController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
buildSliverAppBar(innerBoxIsScrolled),
];
},
body: _buildBody(context),
),
),
);
它对我有用
于 2021-03-18T16:53:02.630 回答
0
您可以通过两种方式实现此目的
如果您只想禁用整个屏幕滚动
然后解决方案是将其包装
ListView
在一个IgnorePointer
小部件中。你也可以只在你
ListView
喜欢的时候禁用滚动在 ListView 上设置
shrinkWrap: true
andprimary: true
属性,这将禁用滚动:ListView( shrinkWrap: true, primary: true,
于 2022-01-24T03:35:35.470 回答