首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀扑姿态

杀扑姿态
EN

Stack Overflow用户
提问于 2021-03-13 21:10:51
回答 1查看 92关注 0票数 0

如果符合某一标准,我正试图阻止一种姿态继续下去。

场景是用户正在滑动一个选项卡栏,如果他们转到下一个选项卡,并且条件为真,则应该禁用进一步的滑动。我试图将选项卡条放在一个堆栈中,上面有一个吸收指针容器,但是如果他们不放弃原来的手势(也就是说,他们到达了新的选项卡,但没有从屏幕上松开),它仍然允许他们拖动它。

有什么办法阻止原来的滑动姿势吗?

我找到了这个取消方法,但是我不知道如何访问它。

https://api.flutter.dev/flutter/gestures/Drag/cancel.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 01:18:45

在您的示例中,不需要处理TabBarView之外的手势,只需更改ScrollPhysics即可。

这里有一个代码示例:

代码语言:javascript
复制
final isDisable = ValueNotifier(false);

tabController.animation?.addListener(() {

  //The scrolling will be disabled if the second tab is displayed so you can 
  //add your own logic, may be just checking tabController.index

  if (tabController.animation!.value == 1.0) {
    isDisable.value = true;
  }
});

return Scaffold(
  body: ValueListenableBuilder(
    valueListenable: isDisable,
    builder: (context, bool value, child) => TabBarView(
      controller: tabController,

      // changing the physics to NeverScrollableScrollPhysics will disable scrolling
      physics: value
          ? NeverScrollableScrollPhysics()
          : AlwaysScrollableScrollPhysics(),

      children: children,
    ),
  ),
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66618568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档