Android官方CodeLab报错:lateinit属性navController未初始化
在跟随developer.android.com官方CodeLab开发时,遇到报错提示:lateinit property navController has not been initialized
解决方案步骤
- 在MainActivity中,将应用栏(action bar)与navController关联,并将navController设为类变量以便在其他方法中调用:
class MainActivity : AppCompatActivity(R.layout.activity_main) { private lateinit var navController: NavController override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val navHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment navController = navHostFragment.navController setupActionBarWithNavController(navController) } }
- 在同一类中重写
onSupportNavigateUp()方法,让navController处理向上导航,若无法处理则回退至父类实现:
override fun onSupportNavigateUp(): Boolean { return navController.navigateUp() || super.onSupportNavigateUp() }
- 运行应用后,FlavorFragment等页面的返回按钮可正常工作,返回时会显示视图模型中正确的订单信息。
报错截图

内容的提问来源于stack exchange,提问作者Kelvin
相关产品推荐
相关产品推荐

