Skip to content

TapGestureRecognizer doesn't work on web, does work on mobile. #46975

@vhgn

Description

@vhgn

Steps to Reproduce

This is my case of facing the issue

  1. Update the stable version of Flutter to Beta channel to have a web version.
flutter channel beta
flutter upgrade
flutter config --enable-web 
  1. Run the application on Chrome.
flutter run -d chrome
My code
RichText(
            text: TextSpan(
              text: 'Package goes from ',
              style: TextStyle(fontSize: 36, color: Colors.black),
              children: <TextSpan>[
                TextSpan(
                  text: _originValue ?? 'here', // _originValue is a String variable (not initially defined)
                  style: TextStyle(
                      color: Colors.deepPurple,
                      fontWeight: FontWeight.bold,
                      decoration: TextDecoration.underline),
                  recognizer: TapGestureRecognizer()
                    ..onTap = () async {
                      _originValue = await Navigator.push(context,
                          MaterialPageRoute(builder: (context) => Cities()));
                    },
                ),
                TextSpan(
                  text: ' to ',
                ),
                TextSpan(
                  text: _destinationValue ?? 'there', // _destinationValue is a String variable (not initially defined)
                  style: TextStyle(
                    color: Colors.deepPurple,
                    fontWeight: FontWeight.bold,
                    decoration: TextDecoration.underline,
                  ),
                  recognizer: TapGestureRecognizer()
                    ..onTap = () async {
                      _destinationValue = await Navigator.push(context,
                          MaterialPageRoute(builder: (context) => Cities()));
                    },
                ),
              ],
            ),
          )

All of this is in a StatefulWidget (in case it's important)

It renders this:

Screen Shot 2019-12-12 at 23 03 18

Where only there button works, and the state of it changes.

Screen Shot 2019-12-12 at 23 05 11

However, the button here doesn't work. And it doesn't matter if I first click on here or there only there button works.

Target Platform: Web
Target OS version/browser: Version 79.0.3945.79 (Official Build) (64-bit)
Devices: MacBook Pro (Retina, 15-inch, Early 2013)

Logs

flutter run --verbose
[  +35 ms] executing: [/Users/vahagn/Other/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +51 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 18cd7a3601bcffb36fdf2f679f763b5e827c2e8e
[        ] executing: [/Users/vahagn/Other/flutter/] git describe --match v*.*.* --first-parent --long --tags
[  +33 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[        ] v1.12.13+hotfix.6-0-g18cd7a360
[  +12 ms] executing: [/Users/vahagn/Other/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +11 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/beta
[        ] executing: [/Users/vahagn/Other/flutter/] git ls-remote --get-url origin
[   +8 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +78 ms] executing: [/Users/vahagn/Other/flutter/] git rev-parse --abbrev-ref HEAD
[  +12 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +15 ms] executing: sw_vers -productName
[  +36 ms] Exit code 0 from: sw_vers -productName
[        ] Mac OS X
[        ] executing: sw_vers -productVersion
[  +22 ms] Exit code 0 from: sw_vers -productVersion
[        ] 10.15.2
[        ] executing: sw_vers -buildVersion
[  +19 ms] Exit code 0 from: sw_vers -buildVersion
[        ] 19C57
[  +63 ms] executing: /usr/bin/xcode-select --print-path
[  +24 ms] Exit code 0 from: /usr/bin/xcode-select --print-path
[        ] /Applications/Xcode.app/Contents/Developer
[   +3 ms] executing: /usr/bin/xcodebuild -version
[ +817 ms] Exit code 0 from: /usr/bin/xcodebuild -version
[   +4 ms] Xcode 11.3
           Build version 11C29
[  +85 ms] executing: /Users/vahagn/Library/Android/sdk/platform-tools/adb devices -l
[  +10 ms] Exit code 0 from: /Users/vahagn/Library/Android/sdk/platform-tools/adb devices -l
[        ] List of devices attached
[  +19 ms] executing: /Users/vahagn/Other/flutter/bin/cache/artifacts/libimobiledevice/idevice_id -h
[  +93 ms] /usr/bin/xcrun simctl list --json devices
[ +150 ms] More than one device connected; please specify a device with the '-d <deviceId>' flag, or use '-d all' to act on all devices.
[  +69 ms] Chrome     • chrome     • web-javascript • Google Chrome 79.0.3945.79
[   +1 ms] Web Server • web-server • web-javascript • Flutter Tools
[  +17 ms] "flutter run" took 1,465ms.

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      RunCommand.validateCommand (package:flutter_tools/src/commands/run.dart:289:7)
<asynchronous suspension>
#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:590:11)
#3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:515:33)
<asynchronous suspension>
#4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#5      _rootRun (dart:async/zone.dart:1126:13)
#6      _CustomZone.run (dart:async/zone.dart:1023:19)
#7      _runZoned (dart:async/zone.dart:1518:10)
#8      runZoned (dart:async/zone.dart:1465:12)
#9      AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#10     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:505:20)
#11     CommandRunner.runCommand (package:args/command_runner.dart:197:27)
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:413:21)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#14     _rootRun (dart:async/zone.dart:1126:13)
#15     _CustomZone.run (dart:async/zone.dart:1023:19)
#16     _runZoned (dart:async/zone.dart:1518:10)
#17     runZoned (dart:async/zone.dart:1465:12)
#18     AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#19     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:19)
#20     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:112:25)
#21     new Future.sync (dart:async/future.dart:224:31)
#22     CommandRunner.run (package:args/command_runner.dart:112:14)
#23     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:250:18)
#24     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:63:22)
#25     _rootRun (dart:async/zone.dart:1126:13)
#26     _CustomZone.run (dart:async/zone.dart:1023:19)
#27     _runZoned (dart:async/zone.dart:1518:10)
#28     runZoned (dart:async/zone.dart:1502:12)
#29     run.<anonymous closure> (package:flutter_tools/runner.dart:61:18)
<asynchronous suspension>
#30     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#31     _rootRun (dart:async/zone.dart:1126:13)
#32     _CustomZone.run (dart:async/zone.dart:1023:19)
#33     _runZoned (dart:async/zone.dart:1518:10)
#34     runZoned (dart:async/zone.dart:1465:12)
#35     AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#36     runInContext (package:flutter_tools/src/context_runner.dart:64:24)
#37     run (package:flutter_tools/runner.dart:50:10)
#38     main (package:flutter_tools/executable.dart:65:9)
#39     main (file:///Users/vahagn/Other/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#40     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:32)
#41     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
flutter analyze
Analyzing tapov...                                                      
No issues found! (ran in 5.7s)
flutter doctor -v
[✓] Flutter (Channel beta, v1.12.13+hotfix.6, on Mac OS X 10.15.2 19C57, locale en-AM)
    • Flutter version 1.12.13+hotfix.6 at /Users/vahagn/Other/flutter
    • Framework revision 18cd7a3601 (2 days ago), 2019-12-11 06:35:39 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/vahagn/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3, Build version 11C29
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.41.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (2 available)
    • Chrome     • chrome     • web-javascript • Google Chrome 79.0.3945.79
    • Web Server • web-server • web-javascript • Flutter Tools

• No issues found!

From my comment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: typographyText rendering, possibly libtxtf: gesturesflutter/packages/flutter/gestures repository.frameworkflutter/packages/flutter repository. See also f: labels.platform-webWeb applications specifically

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions