【问题标题】:Programmatically make modalBottomSheet dismissable in Flutter以编程方式使模态底部表在 Flutter 中消失
【发布时间】:2022-08-12 21:43:58
【问题描述】:

我使用showModalBottomSheet 来渲染带有按钮的底部表单 (StatefulWidgetWithButtons)。一旦按下按钮,工作表的状态就会发生变化,并且会以不同的内容重新呈现。

我希望根据某个状态,表格变得不可解雇。我可以使用

showModalBottomSheet(
  isDismissable: false
  builder: (context) => StatefulWidgetWithButtons()  
)

但是我想要实现的是,根据StatefulWidgetWithButtons 中按下的某个按钮,isDismissable 属性更改为true(或false)。

我不知道如何实现这一点,因为我知道我可以更改 StatefulWidgetWithButtons 但这不会重建底部表。

我也不想关闭并再次显示底部工作表,但在呈现时更改其可关闭的行为

    标签: flutter modal-dialog


    【解决方案1】:

    您可以尝试使用垂直拖动处理程序将不可关闭的布局变体包装在 GestureDetector 中,如下所示:

    GestureDetector(
      onVerticalDragUpdate: (_) {
        print('onVerticalDragUpdate');
      },
      child: ...
    

    这应该防止默认的模态底部工作表拖动处理程序采取行动

    【讨论】:

      猜你喜欢
      • 2018-09-21
      • 2020-10-26
      • 2011-04-16
      • 1970-01-01
      • 2019-08-11
      • 2010-10-31
      • 1970-01-01
      • 2017-02-19
      • 2016-01-30
      相关资源
      最近更新 更多