设置RecyclerView隐形

时间:2017-02-01 15:49:36

标签: java android

我有一个底部导航栏,显示"设置","新闻源"和"简介"。但是,当我设置为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;
        }
    });`

另一个问题是,它是设置导航可见性的好方法吗?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:3)

由于您缺少break;语句,因此您的switch语句会因不同情况而失败。我认为你在寻找的是:

switch(id) {
   case id_1:
     //do some work
   break;
   case id_2:
     //do some work
   break;
   default: 
     //do other work 
}

Java switch statement