You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ListDetailPaneScaffold详情面板显示未选中占位内容?

解决ListDetailPaneScaffold未选中项时显示占位地图的问题

你只需要调整detailPane的逻辑,不再依赖navigator.currentDestination?.content控制Map的渲染时机,改为始终渲染Map组件,根据是否有选中项传入对应参数即可:

ListDetailPaneScaffold(
    modifier = Modifier.fillMaxSize(),
    directive = navigator.scaffoldDirective,
    value = navigator.scaffoldValue,
    listPane = {
        AnimatedPane(modifier = Modifier.fillMaxWidth(0.1f)) {
            LinesList(
                lines = uiState.lines,
                selectedIndex = uiState.lines.indexOf(uiState.selectedLine),
                onItemClick = { index ->
                    navigator.navigateTo(ListDetailPaneScaffoldRole.Detail, index)
                },
            )
        }
    },
    detailPane = {
        AnimatedPane {
            // 始终渲染Map,根据是否有选中项传入对应数据
            val selectedLine = navigator.currentDestination?.content?.let { index ->
                uiState.lines[index].also { vm.selectLine(it) }
            }
            Map(selectedItem = selectedLine)
        }
    },
)

最后需要确保你的Map组件支持接收null类型的selectedItem,当selectedItem为null时,仅加载基础空白地图、不绘制路线即可。

内容的提问来源于stack exchange,提问作者NullPointerException

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:27:42