Я делал это раньше для MapView, и было довольно просто, потому что были предопределенные методы, такие как onInterceptTouchEvent
или GestureListeners
и т. Д.
Кто-нибудь пробовал использовать функцию двойного или двойного щелчка в фрагменте карты? Я гуглю, но все еще не могу найти никакого решения.
Я только начал его, добавив только UiSettings getMap().getUiSettings().setZoomGesturesEnabled(true);
Будет ли он реализован с помощью setOnMapClickListener()
или что-то есть для обработки жеста для события двойного касания для фрагмента карты?
ПРИМЕЧАНИЕ. Этот вопрос касается только MapFragment и не имеет отношения к MapView, на который уже есть ответы Двойное касание: увеличение Android MapView?
EDIT MapFragment, который я использовал в макете:
Класс - это контроллер, который работает для Activity, которая расширяет Activity, а не AppCompactActivity.
Также я добавил кластеризацию маркеров на карте.
Сторона класса:
public class StoreFinderController extends BeeonicsControllerBase implements OnMapReadyCallback,
ClusterManager.OnClusterItemInfoWindowClickListener,ClusterManager.OnClusterClickListener {
onMapReady:
@Override
public void onMapReady(GoogleMap googleMap) {
/*better to work with our map :)*/
this.googleMap = googleMap;
mClusterManager = new CustomClusterManager(getActivity(), getMap());
getMap().setOnCameraIdleListener(mClusterManager);
getMap().setOnInfoWindowClickListener(mClusterManager);
getMap().setOnMarkerClickListener(mClusterManager);
mClusterManager.setOnClusterItemInfoWindowClickListener(this);
mClusterManager.setOnClusterClickListener(this);
/*map additional settings*/
setUpMap();
//setUpGoogleMap();
//readItems();
}
А внутри setUpMap я просто передаю некоторые данные между объектами.