重新创建应用程序时无法设置 BottomNavigationView 的活动项目
Can't set active item of BottomNavigationView while recreating app
重新创建应用时无法设置 BottomNavigationView 的活动项目:重新创建应用后最后选择的项目处于活动状态,因此 BottomNavigationView.setSelectedItemId(R.id.item0)
没有视觉效果,但 onNavigationItemSelected
已成功调用。
那么我怎样才能防止恢复 BNV 以前的活动项目?谢谢
您需要在 onResume()
中执行此操作,因为虽然您的 app 在最近的 apps 中,但 BottomNavigationView
总会抓到位置的。
为什么设置位置不起作用?
因为你设置的位置在onCreate()
里面,当应用程序从最近的应用程序启动时不会被调用。
那怎么设置位置呢?
在 onStart()
或 onResume()
中,这将起作用。
如何检查应用程序是否从 recent-apps 打开?
我们可以玩布尔值,例如:
boolean isFromRecents = false;
onCreate(){
isFromRecents = true;
}
onResume(){
if(isFromRecents)
//do smth
}
重新创建应用时无法设置 BottomNavigationView 的活动项目:重新创建应用后最后选择的项目处于活动状态,因此 BottomNavigationView.setSelectedItemId(R.id.item0)
没有视觉效果,但 onNavigationItemSelected
已成功调用。
那么我怎样才能防止恢复 BNV 以前的活动项目?谢谢
您需要在 onResume()
中执行此操作,因为虽然您的 app 在最近的 apps 中,但 BottomNavigationView
总会抓到位置的。
为什么设置位置不起作用?
因为你设置的位置在onCreate()
里面,当应用程序从最近的应用程序启动时不会被调用。
那怎么设置位置呢?
在 onStart()
或 onResume()
中,这将起作用。
如何检查应用程序是否从 recent-apps 打开?
我们可以玩布尔值,例如:
boolean isFromRecents = false;
onCreate(){
isFromRecents = true;
}
onResume(){
if(isFromRecents)
//do smth
}