首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过颤振测试找到可点击的TextSpan

通过颤振测试找到可点击的TextSpan
EN

Stack Overflow用户
提问于 2020-02-16 18:01:16
回答 1查看 1K关注 0票数 8

使用Flutter WidgetTester,如何点击TextSpan,如下面的代码所示?

代码语言:javascript
复制
RichText(
  text: TextSpan(
    children: [
      TextSpan(text: 'aaa '),
      TextSpan(
        text: 'bbb ',
        recognizer: TapGestureRecognizer()
          ..onTap = () { 
            // How to reach this code in a widget test?
          },
      ),
      TextSpan(text: 'ccc'),
    ],
  ),
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-16 18:18:18

CommonFinders byWidgetPredicate method

InlineSpan visitChildren method

查找TextSpan:

代码语言:javascript
复制
final finder = find.byWidgetPredicate(
  (widget) => widget is RichText && tapTextSpan(widget, "bbb "),
);
代码语言:javascript
复制
bool findTextAndTap(InlineSpan visitor, String text) {
  if (visitor is TextSpan && visitor.text == text) {
    (visitor.recognizer as TapGestureRecognizer).onTap();

    return false;
  }

  return true;
}

bool tapTextSpan(RichText richText, String text) {
  final isTapped = !richText.text.visitChildren(
    (visitor) => findTextAndTap(visitor, text),
  );

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

https://stackoverflow.com/questions/60247342

复制
相关文章

相似问题

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