Skip to content

Commit 88ca66d

Browse files
authored
add overlay support (#143)
* add overlay support * add doc * remove the fillmaxsize modifier
1 parent e9f7319 commit 88ca66d

File tree

1 file changed

+26
-2
lines changed
  • toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose

1 file changed

+26
-2
lines changed

toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/Map.kt

+26-2
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,50 @@
1717

1818
package com.arcgismaps.toolkit.geocompose
1919

20+
import androidx.compose.foundation.layout.Box
2021
import androidx.compose.runtime.Composable
2122
import androidx.compose.runtime.DisposableEffect
2223
import androidx.compose.runtime.LaunchedEffect
2324
import androidx.compose.runtime.remember
2425
import androidx.compose.ui.Modifier
2526
import androidx.compose.ui.platform.LocalContext
2627
import androidx.compose.ui.platform.LocalLifecycleOwner
28+
import androidx.compose.ui.semantics.contentDescription
29+
import androidx.compose.ui.semantics.semantics
2730
import androidx.compose.ui.tooling.preview.Preview
2831
import androidx.compose.ui.viewinterop.AndroidView
2932
import com.arcgismaps.mapping.view.MapView
3033
import kotlinx.coroutines.launch
3134

35+
/**
36+
* A compose equivalent of the [MapView].
37+
*
38+
* @param modifier Modifier to be applied to the Map
39+
* @param mapState the state of the Map
40+
* @param overlay the composable overlays to display on top of the Map. Example, a compass, floorfilter etc.
41+
* @since 200.3.0
42+
*/
3243
@Composable
33-
public fun Map(modifier: Modifier = Modifier, mapState: MapState = MapState()) {
44+
public fun Map(
45+
modifier: Modifier = Modifier,
46+
mapState: MapState = MapState(),
47+
overlay: @Composable () -> Unit = {}
48+
) {
3449

3550
val lifecycleOwner = LocalLifecycleOwner.current
3651
val context = LocalContext.current
3752
val mapView = remember { MapView(context) }
3853

39-
AndroidView(modifier = modifier, factory = { mapView })
54+
Box(modifier = Modifier.semantics {
55+
contentDescription = "MapContainer"
56+
}) {
57+
AndroidView(modifier = modifier
58+
.semantics {
59+
contentDescription = "MapView"
60+
}, factory = { mapView })
61+
62+
overlay()
63+
}
4064

4165
DisposableEffect(Unit) {
4266
lifecycleOwner.lifecycle.addObserver(mapView)

0 commit comments

Comments
 (0)