Closed greatm84 closed 1 year ago
아래와 같이 하면 잘됩니다 물론 그냥 remember을 사용한거라 화면 회전이나 앱 디스플레이 동적 사이즈 변경에 대응은 안되겠지만요.
@ExperimentalNaverMapApi
@Composable
@NaverMapComposable
public fun rememberMarkerState2(
key: String? = null,
position: LatLng = LatLng(0.0, 0.0),
): MarkerState = remember(key1 = key, key2 = position) {
MarkerState(position)
}
@greatm84 우선 이슈 등록해주셔서 감사합니다. :)
rememberMarkerState()
는 하나의 옵션으로 제공되는 API라서, 반드시 사용할 필요는 없구요.
아래처럼 MarkerState
를 바로 생성하셔도 될 것 같습니다.
items.forEachIndexed { index, locationItem ->
Marker(
- state = rememberMarkerState(
- key = "$index $locationItem", // key가 있든 없든 문제는 재현됩니다
+ state = MarkerState(
position = LatLng(
locationItem.latitude.toDouble(),
locationItem.longitude.toDouble()
)
),
captionText = locationItem.convertTime(),
globalZIndex = MARKER_OVERLAY_Z_INDEX_FROM - index,
captionTextSize = 10.sp,
isHideCollidedMarkers = true,
)
}
rememberMarkerState()
동작 수정은 고민해보겠습니다. 🤔
넵 좋은 답변 감사드립니다. 유용하게 잘 쓰고 있어요 b
@greatm84 이슈 많이 올려도 괜찮으니, 자유롭게 올려주세요. :bow:
안녕하세요 만들어주신 naver map sdk 잘 사용하고 있습니다
location item들을 param으로 받는 composable function 내부에 NaverMap compose 호출을 통해 처음 marker가 있는 화면을 그린 뒤(marker는 location 을 position 및 key로 사용) app을 pause 후 resume 하고 나서
location param을 변경하여 navermap을 감싸는 composable function 이 다시 호출되었을때 이전 marker들은 이전 위치에 그대로 남아있고 새로운 position에 맞는 marker들이 생성되진 않습니다 새로운 position에 맞게 그려져야 할 것 같습니다
PathOverlay는 정상적으로 새롭게 그려집니다(rememberSaveable이 아니기도 해서 그렇겠지요)
이슈인 것 같아 리포팅 해드립니다
혹시 제가 잘못 사용하고 있는 부분에 의해 발생하고 있는 이슈라면 수정할 부분이 있다면 알려주시면 매우 감사하겠습니다