Android Mapbox贴图仅半响应平移手势
我实现了一个mapbox MapView。它在屏幕上显示得很好,但当我尝试平移地图时,它会在屏幕上按我想要的方向移动几个像素,然后在我的手指仍在滑动时停止。有时会发生这种情况,有时根本没有反应。 当它停止时,并不意味着它现在卡住了——我可以再试一次,它可能会再次移动,但方式相同。 这是非常不可预测的,不一致的和笨重的 **我必须提到,双击缩放总是有效的。所以,这是一种不太合适的滑动姿势 我将地图放在一个片段中,并在另一个片段的框架中显示。它是否与两层片段管理器(片段中的片段)的事实有关 这是我的地图的片段xml:Android Mapbox贴图仅半响应平移手势,android,kotlin,mapbox,mapbox-gl,mapbox-android,Android,Kotlin,Mapbox,Mapbox Gl,Mapbox Android,我实现了一个mapbox MapView。它在屏幕上显示得很好,但当我尝试平移地图时,它会在屏幕上按我想要的方向移动几个像素,然后在我的手指仍在滑动时停止。有时会发生这种情况,有时根本没有反应。 当它停止时,并不意味着它现在卡住了——我可以再试一次,它可能会再次移动,但方式相同。 这是非常不可预测的,不一致的和笨重的 **我必须提到,双击缩放总是有效的。所以,这是一种不太合适的滑动姿势 我将地图放在一个片段中,并在另一个片段的框架中显示。它是否与两层片段管理器(片段中的片段)的事实有关 这是我的
<?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>
这些是我的依赖项(我最后一次添加它是为了解决我的问题,但它仍然存在,该依赖项并没有真正改变任何事情)
我的问题是,尽管我的片段是外部的,但它托管在一个滚动布局中,因此手势在两个视图之间丢失了可能您能否澄清您正在使用哪个版本的Maps SDK构建?SDK的旧版本有不同的手势逻辑,所以这可能是您看到这种行为的原因之一
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'