【问题标题】:How to disable a tab in bottom navigation view?如何禁用底部导航视图中的选项卡?
【发布时间】:2019-02-18 21:56:14
【问题描述】:

我的应用中有 4 个标签。其中一个无需登录即可访问,但其他人则无法访问。因此,我需要实现一个功能,如果用户单击该选项卡,则其余 4 将被禁用,当我单击这些选项卡时,我只想吐司,但如果我单击这些选项卡,我会吐司,但它也被选中但片段没有改变。我想禁用该选项卡 我已经为一个变量赋值,以检查它是没有记录还是在记录之后。

代码:

  case R.id.home:
                if(value.equals("1")){
                    Toast.makeText(CarerSeekerActivity.this,R.string.login_signup,Toast.LENGTH_SHORT).show();
                    navigation.getMenu().getItem(0).setEnabled(false);

                }
                else {
                    fragment = new CreatePersonalizedPackageCareSeekerFragment();
                    changeFragments(fragment);
                }
                return true;

但它显示吐司,但选择了该选项卡。我不想让它被选中。请帮忙。

【问题讨论】:

  • 试试view.setEnabled(false)。不过,查看更多开关代码以及您正在使用的视图实际上会更有帮助。
  • 我试过但它第二次禁用而不是第一次。
  • @mishti 表示您要处理基于点击的条件,对吧?
  • 是的@HemantN.Karmur
  • @mishti 你能告诉我这个值 1 是从哪里来的吗?

标签: android android-bottomnav


【解决方案1】:

设置好菜单后,请在你的 on create 方法中写下如下代码:

if(isloggedin){
// do click action which is required if the user already logged in
change your fragment from here
}else{
    bottomnavigation.getMenu().getItem(your_position).setEnabled(false); // disable menu if user not logged in
Toast.makeText(CarerSeekerActivity.this,R.string.login_signup,Toast.LENGTH_SHORT).show();
}

【讨论】:

  • 我为此使用了 BottomNavigationView
  • @mishti 请检查我的回答,这工作正常。
  • @mishti 明白了吗?
  • @mishti 您必须在设置菜单后将此代码放入 onCreate 方法中,然后才能正常工作。
  • if (value.equals("1")) { navigation.getMenu().getItem(0).setEnabled(false); Toast.makeText(CarerSeekerActivity.this,R.string.login_signup,Toast.LENGTH_SHORT).show(); }else { 片段 = 新的 CreatePersonalizedPackageCareSeekerFragment();更改片段(片段); }
猜你喜欢
  • 2017-03-12
  • 2020-04-29
  • 2019-11-03
  • 2011-01-04
  • 2019-10-02
  • 1970-01-01
  • 2020-05-25
  • 2020-09-10
  • 2020-10-13
相关资源
最近更新 更多