0

我的 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();
    }

这最初有效,但在一两秒钟后,选定的项目又回到了第一个。我该怎么做才能使所选项目在加载后保持活动状态?

4

1 回答 1

0

在选择项目之前尝试延迟

这里我放了100毫秒,如果不行你可以增加

new Handler(getMainLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
        bottomNav.setSelectedItemId(R.id.myitem);
    }
}, 100); // 100 msec delay
于 2020-12-29T00:44:37.000 回答