我想使用不同的输入参数返回。
我有一个ParentScreen
,它正在使用输入参数arg
(= "first"
)。代码通过在按下按钮时发送newArg
(= "firstsecond"
)从父级导航到子级。当从子级导航回父级时,我希望父级的输入arg
为"fistsecond"
。
下面我写的代码(它是不工作),以显示我想要的.
@Composable
fun ParentScreen(
nav: NavHostController,
arg: String = "first"
) {
val newArg = arg + "second"
Button(onClick = {
nav.navigate("child/$newArg") {
popUpTo("parent/$newArg") {
saveState = true
}
}
}) {
Text(text = arg)
}
}
1条答案
按热度按时间nfeuvbwi1#
您可能需要做的是将父级可组合对象作为single top启动,然后在从子级可组合对象导航时,可以发送新参数并再次将其作为single top启动。
您可以像这样第一次启动ParentScreen;
然后像往常一样导航到ChildScreen;
在ChildScreen中,像这样导航到ParentSceen,这将从导航堆栈中删除ChildScreen,并将ParentScreen作为单顶启动,从而使堆栈中仅ParentScreen具有新参数;
完整的代码在这里;