小编Fer*_*ino的帖子

BottomNavigationView setSelectedItemId 崩溃

我正在使用 BottomNavigationView 和 Fragment 编写一个应用程序,以编程方式更新布局。

我正在尝试使用 Stack 来允许用户单击返回并返回上一个片段。我曾尝试在膨胀新片段后使用 addToBackStack 但是当按下后退时尽管布局正确更改,所选项目菜单不会随之更改。

所以我决定创建一个自定义的 Fragment 堆栈并使用 setSelectedItemId 更改所选项目,但此操作使应用程序崩溃。我通常使用了很多时间,但我无法理解这种行为。

谢谢您的帮助。

public class MainActivity extends FragmentActivity {

private FragmentManager fm = getSupportFragmentManager();
private Logger logger = Logger.getLogger("global");
private BottomNavigationView bnv;
private CustomStack customStack = new CustomStack();

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {

        Fragment centerFragment;
        switch (item.getItemId()) {

            case R.id.navigation_home:
                centerFragment = new Fragment1();
                replaceCenterLayoutFragment(centerFragment);
                customStack.push(centerFragment);

                return true;
            case R.id.navigation_map:
                centerFragment = new Fragment2();
                bnv.setSelectedItemId(R.id.navigation_interest);
                return true;
            case …
Run Code Online (Sandbox Code Playgroud)

android android-fragments bottomnavigationview

2
推荐指数
1
解决办法
1759
查看次数