Я делал это раньше для MapView, и это было довольно просто, потому что были предопределенные методы, такие как onInterceptTouchEvent
или GestureListeners
и т. Д.
Кто-нибудь пробовал использовать функцию двойного или двойного щелчка в фрагменте карты какЧто ж.Я гуглю, но все еще не могу найти никакого решения.
Я только начал его, добавив только UiSettings getMap().getUiSettings().setZoomGesturesEnabled(true);
Будет ли оно реализовано с помощью setOnMapClickListener()
или что-то там естьобработать жест для события двойного касания для фрагмента карты?
ПРИМЕЧАНИЕ. Этот вопрос относится только к MapFragment и не относится к MapView, на который уже есть ответы Двойное касание: увеличение Android MapView?
EDIT MapFragment, который я использовал в макете:
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/noItemsText"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:addStatesFromChildren="true"
android:background="@android:color/transparent"
android:gravity="center">
<ListView
android:id="@+id/storesListView"
style="@style/Fill"
android:background="@android:color/transparent"
android:cacheColorHint="#00000000" />
<fragment
android:id="@+id/mapview"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ViewFlipper>
Класс - это контроллер, который работает для Activity, которая расширяет Activity, а не AppCompactActivity.
Также я добавил кластеризацию маркеровна карте.
Сторона класса:
public class StoreFinderController extends BeeonicsControllerBase implements OnMapReadyCallback,
ClusterManager.OnClusterItemInfoWindowClickListener<AllClusterItems>,ClusterManager.OnClusterClickListener<AllClusterItems> {
onMapReady:
@Override
public void onMapReady(GoogleMap googleMap) {
/*better to work with our map :)*/
this.googleMap = googleMap;
mClusterManager = new CustomClusterManager<AllClusterItems>(getActivity(), getMap());
getMap().setOnCameraIdleListener(mClusterManager);
getMap().setOnInfoWindowClickListener(mClusterManager);
getMap().setOnMarkerClickListener(mClusterManager);
mClusterManager.setOnClusterItemInfoWindowClickListener(this);
mClusterManager.setOnClusterClickListener(this);
/*map additional settings*/
setUpMap();
//setUpGoogleMap();
//readItems();
}
А внутри setUpMap я просто передаю некоторые данные между объектами.