我已经实现了一个Mapbox MapView。它在屏幕上显示得很好,但是当我尝试平移地图时,它会按照我想要的方向在屏幕上移动几个像素,然后在我的手指仍然滑动时停止。有时会发生这种情况,有时甚至根本不响应。 当它停止时,并不表示它现在卡住了-我可以再试一次,并且它可能会再次移动,但是方式相同。 这是非常不可预测的,不一致且笨拙的。
**我必须提到,双击始终可以缩放。因此,滑动手势时坐姿不好。
我将地图托管在一个片段中,并显示在另一个片段内的框架中。它与片段管理器的两层(片段中的片段)有关吗?
这是我地图的片段xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:mapbox="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragments.ImageMapViewFragment"
tools:showIn="@layout/fragment_image_expanded">
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:mapbox_cameraZoom="11"/>
</androidx.constraintlayout.widget.ConstraintLayout>
这是我的片段:
mapView = view.findViewById(co.getdere.R.id.mapView)
mapView?.getMapAsync { mapboxMap ->
mapboxMap.setStyle(Style.LIGHT) { style ->
style.addImage(
DERE_PIN,
BitmapUtils.getBitmapFromDrawable(resources.getDrawable(R.drawable.pin_icon))!!,
true
)
val geoJsonOptions = GeoJsonOptions().withTolerance(0.4f)
val symbolManager = SymbolManager(mapView!!, mapboxMap, style, null, geoJsonOptions)
symbolManager.iconAllowOverlap = true
sharedViewModelForImage.sharedImageObject.observe(this, Observer {
it?.let { image ->
val symbolOptions = SymbolOptions()
.withLatLng(LatLng(image.location[0], image.location[1]))
.withIconImage(DERE_PIN)
.withIconSize(1.3f)
.withZIndex(10)
.withDraggable(true)
symbolManager.create(symbolOptions)
val position = CameraPosition.Builder()
.target(LatLng(image.location[0], image.location[1]))
.zoom(10.0)
.build()
mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(position))
}
})
}
}
这些是我的依赖项(我最后一次尝试解决我的问题是添加的,但是仍然存在,该依赖项并没有真正改变任何东西)
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.4.0-alpha.1'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v7:0.6.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-gestures:0.4.0'
答案 0 :(得分:0)
我的问题是,即使我的片段在外部,它也位于滚动布局中,因此手势可能会在两个视图之间丢失