问题描述
我的 MainActivity 有一个底部导航,默认为第一项。根据通过意图收到的数据,我希望更改所选项目。我在 MainActivity 的 OnCreate 方法上使用以下代码:
if (getIntent().getExtras() != null) {
String deepLink = getIntent().getExtras().getString("type");
if (deepLink.equals("mydata")) {
if (loggedIn) {
bottomNav.setSelectedItemId(R.id.myitem);
}
}
} else {
setTitle("First");
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new FirstFragment(),"First").commit();
}
这最初有效,但一两秒后,所选项目恢复为第一个。我该怎么做才能使所选项目在加载后保持活动状态?
解决方法
在选择项目之前尝试延迟
这里我设置了 100 毫秒,如果它不起作用,您可以增加它
new Handler(getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
bottomNav.setSelectedItemId(R.id.myitem);
}
},100); // 100 msec delay