我有一个底部导航栏,显示"设置","新闻源"和"简介"。但是,当我设置为Invisible时,它又不会再显示出来。所以我创建了一个if语句来检查其可见性的状态,但它不起作用。
bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_menu);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.news_icon:
if (mNewsFeedList.getVisibility() == View.INVISIBLE){
mNewsFeedList.setVisibility(View.VISIBLE);
}else{
}
Toast.makeText(newsfeed.this, "news", Toast.LENGTH_LONG).show();
case R.id.profile_icon:
mNewsFeedList.setVisibility(View.INVISIBLE);
Toast.makeText(newsfeed.this, "profile", Toast.LENGTH_LONG).show();
case R.id.setting_icon:
mNewsFeedList.setVisibility(View.INVISIBLE);
}
return false;
}
});`
另一个问题是,它是设置导航可见性的好方法吗?有没有更好的方法呢?
答案 0 :(得分:3)
由于您缺少break;
语句,因此您的switch语句会因不同情况而失败。我认为你在寻找的是:
switch(id) {
case id_1:
//do some work
break;
case id_2:
//do some work
break;
default:
//do other work
}