Статическая карта Google (отключить все жесты) - PullRequest
1 голос
/ 11 июня 2019

Я хочу создать виджет Google Map, который не будет обрабатывать щелчки, жесты - только статическую карту.Я понимаю, что мне нужно как-то установить gestureRecognizers, но не могу понять, какой класс заблокирует все жесты.Что я должен использовать вместо ScaleGestureRecognizer()?

Установка gestureRecognizers на ноль не помогает.

Когда этот набор пуст или равен нулю,карта будет обрабатывать только события указателя для жестов, которые не были заявлены каким-либо другим распознавателем жестов.

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

class StaticMap extends StatelessWidget {
  final CameraPosition cameraPosition;
  StaticMap(this.cameraPosition);

  @override
  Widget build(BuildContext context) {
    return GoogleMap(
      mapType: MapType.normal,
      initialCameraPosition: cameraPosition,
      gestureRecognizers: {
        Factory<OneSequenceGestureRecognizer>(() => ScaleGestureRecognizer()),
      },
    );
  }
}

1 Ответ

1 голос
/ 11 июня 2019

Попробуйте использовать AbsorbPointer

Создайте GoogleMap child из AbsorbPointer и установите для его свойства absorbing значение true

return AbsorbPointer(
  absorbing: true,
  child: GoogleMap(
    mapType: MapType.normal,
    initialCameraPosition: cameraPosition,
    gestureRecognizers: {
    Factory<OneSequenceGestureRecognizer>(() => ScaleGestureRecognizer()),
    }
  )
);

Youможно также установить его absorbing свойство false, если вы хотите обнаруживать события

Для получения дополнительной информации о AbsorbPointer см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...