gpt4 book ai didi

dart - 在 flutter 中以编程方式关闭模态底部表

转载 作者:IT老高 更新时间:2023-10-28 12:29:46 47 4
gpt4 key购买 nike

我正在通过 showModalBottomSheet<Null>() 显示 BottomSheet并在几个带有 GestureDetector 的小部件内。我希望看到 BottomSheet 不仅通过触摸它的外部而且在内部的 GestureDetector 的 onTap 事件之后关闭。但是,GestureDetector 似乎没有转发触摸事件。

所以我想知道,有没有办法以编程方式触发 ModalBottomSheet 的关闭或告诉 GestureDetector 转发触摸事件的方法?

更新(2018-04-12):

为了更好地理解代码片段。问题是当点击“Item 1”或“Item 2”时,ModalBottomSheet 没有关闭。

showModalBottomSheet<Null>(context: context, builder: (BuildContext context)
{
return new SingleChildScrollView(child:
new Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
new GestureDetector(onTap: () { doSomething(); }, child:
new Text("Item 1")
),
new GestureDetector(onTap: () { doSomething(); }, child:
new Text("Item 2")
),
]),
);
});

最佳答案

以编程方式关闭 ModalBottomSheet 是通过

Navigator.pop(context);

所以我只是在 GestureDetector 的 onTap 回调函数中调用 pop 函数。

showModalBottomSheet(context: context, builder: (BuildContext context)
{
return SingleChildScrollView(child:
Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
GestureDetector(onTap: () {
Navigator.pop(context);
doSomething();
}, child:
Text("Item 1")
),
GestureDetector(onTap: () {
Navigator.pop(context);
doSomething();
}, child:
Text("Item 2")
),
]),
);
});

关于dart - 在 flutter 中以编程方式关闭模态底部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49778866/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com