BottomNavigationView.setOnItemSelectedListener() 徽章更新不起作用

BottomNavigationView.setOnItemSelectedListener() badge update not working

提问人:simonetassi 提问时间:11/16/2023 更新时间:11/16/2023 访问量:11

问:

我正在尝试使用 .setOnItemSelectedListener() 方法来隐藏与我的 BottomNavigationView 中的菜单项之一关联的徽章,但它不起作用,我无法弄清楚问题出在哪里

这是我的代码:

@Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ...

        // NAVBAR CONTROL
        NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
        NavController navController = navHostFragment.getNavController();
        bottomNavigationView = findViewById(R.id.bottomNavigation);
        bottomNavigationView.getOrCreateBadge(R.id.discoverFragment);
        bottomNavigationView.getBadge(R.id.discoverFragment).setVisible(false);

        // TODO not working at the moment
        bottomNavigationView.setOnItemSelectedListener( item -> {
            if (item.getItemId() == R.id.discoverFragment){
                Log.d(TAG, "discover fragment");
                bottomNavigationView.getBadge(R.id.discoverFragment).setVisible(false);
                return true;
            } else {
                Log.d(TAG, "ERROR: Fragment unrecognized");
                return false;
            }
        });

        NavigationUI.setupWithNavController(bottomNavigationView, navController);
...

显示我使用的徽章,效果很好。bottomNavigationView.getBadge(R.id.discoverFragment).setVisible(true);

java android 导航 bottomnavigationview

评论


答: 暂无答案