replaceFragment(new HomeFragment()); 绑定.bottomNavigationView.setBackground(null);
binding.bottomNavigationView.setOnItemSelectedListener(item ->{
switch (item.getItemId()){
case R.id.home;
replaceFragment(new HomeFragment());
break;
case R.id.news:
replaceFragment(new NewsFragment());
break;
case R.id.weather:
replaceFragment(new weatherFragment());
break;
}
return true;
} );
底部导航栏应该是正确的,但模拟器由于该错误而未启动。我不确定可能是什么问题。
在您的代码中,我可以看到您在 R.id.home 之后放置了“;”(分号),并且在其他地方放置了“:”(冒号)。冒号是正确的,就像 switch 语法一样,您必须将冒号放在案例名称后面,在您的案例中,案例名称是 R.id.home 。
确保在每个案例名称后面加上冒号,而不仅仅是一两个,而应该在每个案例名称后面加上冒号。
所以,你的代码应该如下所示:
binding.bottomNavigationView.setOnItemSelectedListener(item ->{
switch (item.getItemId()){
case R.id.home: //changed semicolon to colon
replaceFragment(new HomeFragment());
break;
case R.id.news:
replaceFragment(new NewsFragment());
break;
case R.id.weather:
replaceFragment(new weatherFragment());
break;
}
return true;
} );
尝试这个改变你一定会得到输出。如果没有,请也添加错误日志,以便每个人都可以了解您到底遇到了什么错误。
快乐编码!!!