У меня реализуется 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'