Android 如何在 BottomNavigationView 中隐藏一个按钮
How to hide one button from BottomNavigationView in Android
我将底部导航栏添加到我的应用程序中,它工作正常,但我尝试在 if 条件下隐藏一项或一个按钮,但我尝试这样做但没有成功。
如果 if(block.equals("3")) 我需要做到这一点,所以我会看到所有底部导航栏..但如果它等于任何其他数字,则有一个按钮将被隐藏,我会可以看到其他按钮。
这个按钮我需要它隐藏case R.id.nav_s: selectedFragment = new MainActivity();
我这样试过但不行case R.id.nav_s: new MainActivity().setMenuVisibility(false);
这是我的代码:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
if(block.equals("3")){
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
}else {
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
new MainActivity().setMenuVisibility(false);//this is I need make it hide if block not equals("3")
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}
});
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}
知道解决方法的朋友帮帮我
要将项目添加到 NavigationView
菜单,请使用 bottomNavigationView.getMenu().add()
,要删除项目,请使用 bottomNavigationView.getMenu().removeItem()
要在您的代码中应用它:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
if(block.equals("3")){
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) == null)
bottomNavigationView.getMenu().add(0, R.id.nav_s, 2, "Title"); // 2 is item order in the menu
}else {
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) != null)
bottomNavigationView.getMenu().removeItem(R.id.nav_s);
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}
我将底部导航栏添加到我的应用程序中,它工作正常,但我尝试在 if 条件下隐藏一项或一个按钮,但我尝试这样做但没有成功。
如果 if(block.equals("3")) 我需要做到这一点,所以我会看到所有底部导航栏..但如果它等于任何其他数字,则有一个按钮将被隐藏,我会可以看到其他按钮。
这个按钮我需要它隐藏case R.id.nav_s: selectedFragment = new MainActivity();
我这样试过但不行case R.id.nav_s: new MainActivity().setMenuVisibility(false);
这是我的代码:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
if(block.equals("3")){
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
}else {
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
new MainActivity().setMenuVisibility(false);//this is I need make it hide if block not equals("3")
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}
});
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}
知道解决方法的朋友帮帮我
要将项目添加到 NavigationView
菜单,请使用 bottomNavigationView.getMenu().add()
,要删除项目,请使用 bottomNavigationView.getMenu().removeItem()
要在您的代码中应用它:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
if(block.equals("3")){
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) == null)
bottomNavigationView.getMenu().add(0, R.id.nav_s, 2, "Title"); // 2 is item order in the menu
}else {
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) != null)
bottomNavigationView.getMenu().removeItem(R.id.nav_s);
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}