【发布时间】:2021-05-05 12:27:52
【问题描述】:
NavController 无法以编程方式弹出堆栈中最新的 @Composable。 IE。如果它是一个根页面,popBackStack() 不起作用。所以应用程序可以通过点击“关闭”按钮视图关闭,只有硬件返回键允许离开应用程序。
示例:活动
class AppActivity : ComponentActivity() {
override fun onCreate(state: Bundle?) {
super.onCreate(state)
setContent {
val controller = rememberNavController()
NavHost(controller, startDestination = HOME) {
composable(HOME) { HomePage(controller) }
...
}
}
}
}
主页.kt
@Composable
fun HomePage(controller: NavController) {
Button(onClick = {
controller.popBackStack()
}) {
Text("Exit")
}
}
问题:
如果使用 Compose Navigation,如何在 onClick 处理程序中关闭应用。
【问题讨论】:
-
我认为您正在寻找这个:stackoverflow.com/questions/6330200/… 在 Compose 中,您必须将活动传递给将使用它的可组合项。
-
我们不知道框架如何使用和兑现@Composable 实体。我的意思是,我们不管理它的生命周期,因此存在上下文泄漏的风险。
-
向 Google tracker issuetracker.google.com/issues/187134652发布了一个问题/问题
标签: kotlin android-jetpack-compose android-jetpack-navigation