Расширение MapBox Compose: изменение MapInitOptions во время композиции не допускается, исключениеAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Расширение MapBox Compose: изменение MapInitOptions во время композиции не допускается, исключение

Сообщение Гость »


Я пытаюсь использовать MapBox в Compose и установить необходимое местоположение на карте с помощью функции mapViewportState.flyTo(), но для некоторых это не удается с упомянутым исключением Причина, и это связано с использованием mapInitOptionsFactory = { MapInitOptions(...) . Если я удалю код строки mapInitOptionsFactory, то это сработает, но это означает, конечно, что я получу значение по умолчанию стиль карты

val mapViewportState = RememberMapViewportState LaunchedEffect(key1 = userInitialLocation) { userInitialLocation?.let { userLocation -> MapViewportState.flyTo( cameraOptions = mapViewportState.cameraState.toCamera .центр( Point.fromLngLat( userLocation.долгота, userLocation.latitude ) ) .zoom(16.0) .строить() ) } } контекст val = LocalContext.current если (isLocationPermissionGranted) { MapboxMap( модификатор = Модификатор.fillMaxSize(), MapViewportState = MapViewportState, mapInitOptionsFactory = { // если я закомментирую эту часть, все будет работать нормально MapInitOptions( контекст = контекст, styleUri = Стиль.DARK, ) } ) Логическая котировка:
Ошибка была зафиксирована в композиции, когда было включено оперативное редактирование. java.lang.IllegalStateException: изменение MapInitOptions во время композиции не допускается. по адресу com.mapbox.maps.extension.compose.internal.MapboxMapNodeKt$MapboxMapComposeNode$2$1.invoke(MapboxMapNode.kt:136) по адресу com.mapbox.maps.extension.compose.internal.MapboxMapNodeKt$MapboxMapComposeNode$2$1.invoke(MapboxMapNode.kt:135) в androidx.compose.runtime.ComposerImpl$apply$operation$1.invoke(Composer.kt:1712) в androidx.compose.runtime.ComposerImpl$apply$operation$1.invoke(Composer.kt:1710) в androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:818) в androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:849) в androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:625) в androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:537) в androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:41) в androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109) в androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41) в androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69) в android.view.Choreographer$CallbackRecord.run(Choreographer.java:1229) в android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239) в android.view.Choreographer.doCallbacks(Choreographer.java:899) в android.view.Choreographer.doFrame(Choreographer.java:827) в android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214) в android.os.Handler.handleCallback(Handler.java:942) в android.os.Handler.dispatchMessage(Handler.java:99) в android.os.Looper.loopOnce(Looper.java:201) в android.os.Looper.loop(Looper.java:288) в android.app.ActivityThread.main(ActivityThread.java:7872) в java.lang.reflect.Method.invoke (собственный метод) по адресу com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»