首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlutterDriver -如何关闭showDialog

FlutterDriver -如何关闭showDialog
EN

Stack Overflow用户
提问于 2019-11-05 17:38:47
回答 2查看 743关注 0票数 3

我正在使用FlutterDriver,我定义了一个IconButton并设置了一个密钥集,如下所示:

代码语言:javascript
复制
Center(
  child: IconButton(
    key: Key('moredots'),
    icon: Icon(Icons.more_vert),
    onPressed: () {
      showDialog(
        context: context,
        builder: (_) => tableConfig,        
      );
    },
  ),
)

下面的代码成功地显示了该对话框:

代码语言:javascript
复制
await driver.tap(find.byValueKey('moredots'));

我想不出的是如何拒绝这个对话。我试过:

  • 点击上面所示的值,
  • 在Scaffold中添加一个键,查找键并在层次结构中的其他UI元素中点击
  • 添加键,查找和点击

我收到的错误消息是:

FlutterDriver: tap消息需要很长时间才能完成.

EN

回答 2

Stack Overflow用户

发布于 2019-11-06 03:42:08

我发现showDialog()提供了一个ModalBarrier,用于在显示对话框时停止用户输入。

关闭showDialog的诀窍是按类型查找传入ModalBarrier,如下所示:

代码语言:javascript
复制
await driver.tap(find.byType(ModalBarrier));
票数 2
EN

Stack Overflow用户

发布于 2019-11-05 18:03:38

添加

代码语言:javascript
复制
Navigator.of(context).pop(false);

之后

await driver.tap(find.byValueKey('moredots'));

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

https://stackoverflow.com/questions/58716699

复制
相关文章

相似问题

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