首页 > 解决方案 > 颤振防止 Snackbar 在滑动时被解雇

问题描述

Snackbar当用户向下滑动它而不对类的源代码进行任何修改时,有什么方法可以防止它消失Snackbar

标签: dartflutter

解决方案


放置一个GestureDetector内部SnackBar content并聆听以onVerticalDragStart使其不那么容易被解雇,而使用额外的\n\n\n会让人非常讨厌 - 但是,可以解雇。:)

在这个例子中,它确实阻止了从content区域中解散,但不是从 SnackBar 填充/边距区域。

  void _showSnackBar(BuildContext context) {
    final snackbar = SnackBar(
      duration: Duration(days: 1),
      content: GestureDetector(
        behavior: HitTestBehavior.opaque,
        onVerticalDragStart: (_) => debugPrint("no can do!"),
        child: Text("Hi! Don't try to dismiss me.\n\n\n"),
      )
    );

    Scaffold.of(context).showSnackBar(snackbar);
  }

SnackBar 不那么容易被解雇

我什至尝试简单地将SnackBar小部件直接放入Scaffold's bottomsheet- 但是结果是相同的,甚至GestureDetectorSnackBar.


推荐阅读