Jetpack Compose中TopAppBar返回上页失效,求简易实现方案
问题原因与解决方案
为什么返回按钮没效果?
你是用Intent启动的两个独立Activity,而NavController是Jetpack Navigation组件的工具,它只能管理**同一个NavHost容器下的页面(比如Fragment)**跳转,管不了跨Activity的返回逻辑,所以调用navController.popBackStack()自然没反应。
简易实现方式(无需Navigation组件)
直接在返回按钮的点击事件里调用Activity的finish()方法就行——这个方法会销毁当前的RecordActivity,自动回到之前的MainActivity,代码修改如下:
TopAppBar( title = { Text(text = "History Records") }, navigationIcon = { IconButton(onClick = { finish() }) { Icon(Icons.Filled.ArrowBack, "backIcon") } }, )
是否必须用NavController?
完全没必要。Navigation组件适合单Activity多Fragment、多页面复杂跳转的场景,你这种只有两个独立Activity的简单需求,用Android原生的Activity生命周期方法就足够,没必要引入额外的导航框架。
内容的提问来源于stack exchange,提问作者urbainy
相关产品推荐
相关产品推荐

