LoginSignup
2
1

More than 3 years have passed since last update.

FlutterでListViewの子要素GoogleMapがタップに反応しない場合の対処方法

Last updated at Posted at 2019-12-13

結論

import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

ListView(
  children: <Widget>[
    GoogleMap(
      gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>[
        Factory<OneSequenceGestureRecognizer>(
          () => EagerGestureRecognizer(),
        ),
      ].toSet(),
    ),
  ],
)

引用:https://stackoverflow.com/questions/54280541/google-map-in-flutter-not-responding-to-touch-events

何でこれで動くのか

EagerGestureRecognizerクラスの解説を読む。

(原文)
A gesture recognizer that eagerly claims victory in all gesture arenas.
(意訳)
この GestureRecognizer は全 gesture のいる闘技場の中でも特に熱心に勝利を主張します。
https://api.flutter.dev/flutter/gestures/EagerGestureRecognizer-class.html

この文章書いた人、何かキメてたんですかね????
Eager が熱心という意味らしい。
要するにはユーザータップ時に複数の操作可能オブジェクトがあった場合に、
この Gesture が紐付けられたWidgetが最優先で反応するみたいです。
つまり、デフォルトではListViewのほうが優先度高いんですね……

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1