我正在尝试撰写,但出了点问题...... 我有带有两个选项卡(地图和监视器)的 TabScreen。选项卡监视器工作正常但选项卡地图工作错误。当我切换标签地图时,我的标签消失了,但我尝试点击放置标签,它的工作和切换。
TabScreen.kt
@Composable
fun TabScreen() {
var tabIndex by remember { mutableStateOf(0) }
val tabs = listOf("Map", "Monitors")
Column(modifier = Modifier.fillMaxWidth()) {
TabRow(
selectedTabIndex = tabIndex,
backgroundColor = Color.White,
divider = {
TabRowDefaults.Divider(
Modifier.wrapContentSize(Alignment.BottomStart),
color = Color(0xFFF4F4F4)
)
},
indicator = { tabPositions: List<TabPosition> ->
TabRowDefaults.Indicator(
Modifier.tabIndicatorOffset(tabPositions[tabIndex]),
color = Color.Yellow,
height = 4.dp
)
},
contentColor = Color(0xFFC2C2C2)
) {
tabs.forEachIndexed { index, title ->
Tab(
text = { Text(title) },
selected = tabIndex == index,
onClick = { tabIndex = index },
selectedContentColor = Color.Black,
unselectedContentColor = Color(0xFFC2C2C2)
)
}
}
when (tabIndex) {
0 -> MapScreen()
1 -> MonitorsScreen()
}
}
}
显示器屏幕工作正常:
MapScreen.kt
@Composable
fun MapScreen() {
Box() {
val context = LocalContext.current
val cameraState = rememberCameraState {
geoPoint = GeoPoint(-6.3970066, 106.8224316)
zoom = 12.0
}
var mapProperties by remember {
mutableStateOf(DefaultMapProperties)
}
val overlayManagerState = rememberOverlayManagerState()
SideEffect {
mapProperties = mapProperties
.copy(isTilesScaledToDpi = true)
.copy(tileSources = TileSourceFactory.MAPNIK)
.copy(isEnableRotationGesture = true)
.copy(zoomButtonVisibility = ZoomButtonVisibility.NEVER)
}
OpenStreetMap(
// modifier = Modifier.fillMaxSize(),
cameraState = cameraState,
properties = mapProperties,
overlayManagerState = overlayManagerState,
onFirstLoadListener = {
val copyright = CopyrightOverlay(context)
overlayManagerState.overlayManager.add(copyright)
}
)
}
}
如果我触摸地图,部分标签显示:
我做错了什么?