Flutter: ListView 禁用触摸屏的滚动

有没有可能让 ListView 只能在 ScrollController 上滚动,而不能在触摸屏上滚动?

124456 次浏览

正如评论中提到的,物理课将会这样做:

物理课

不允许用户滚动的滚动物理过程。

在 ListView 小部件中,使用

physics: const NeverScrollableScrollPhysics()

您可以在 ListView 小部件中仅添加 primary: false

默认匹配平台约定。此外,如果主服务器为 false,那么如果没有足够的内容可以滚动,则用户无法滚动,而如果主服务器为 true,则用户总是可以尝试滚动。

想了解更多,请查看 官方文件

启用和禁用 scrollview 的 If判断语句。

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

对我有用

 ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: const ClampingScrollPhysics(),
...

那 NestedScrollView 呢?

            bottomNavigationBar: _buildBottomAppBar(),
body: Container(
child: NestedScrollView(
physics: NeverScrollableScrollPhysics(),
controller: _scrollViewController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
buildSliverAppBar(innerBoxIsScrolled),
];
},
body: _buildBody(context),
),
),
);

对我有用