当前位置: 首页 > 知识库问答 >
问题:

禁用TabLayout[重复]中的制表符

丁立果
2023-03-14

我在应用程序中使用了最新设计支持库中的Tablayout。这些选项卡附加到一个viewpager,该viewpager加载每个选项卡的片段。我想禁用所有选项卡,直到viewpager加载用户选择的选项卡的片段。我无法禁用tablayout或使其不可单击。我使用了setEnabled(false)setClickable(false),但它不起作用。我可以使用setVisiblity(view.gone)使其不可见,但我希望选项卡始终可见。

    tabLayout = (TabLayout) findViewById(R.id.tabLayout);
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setTabMode(TabLayout.MODE_FIXED);
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.near_me_hover).setTag(1));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.all_hostels).setTag(2));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.top_five).setTag(3));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.advanced_search).setTag(4));
    tabLayout.setEnabled(false);
    tabLayout.setClickable(false);

XML

        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            switch (tab.getPosition()) {
                case 0:
                    viewPager.setCurrentItem(tab.getPosition());
                    tab.setIcon(R.drawable.near_me_hover);
                    break;
                case 1:
                    viewPager.setCurrentItem(tab.getPosition());
                    tab.setIcon(R.drawable.all_hostels_hover);
                    break;
                case 2:
                    viewPager.setCurrentItem(tab.getPosition());
                    tab.setIcon(R.drawable.top_five_hover);
                    break;
                case 3:
                    viewPager.setCurrentItem(tab.getPosition());
                    tab.setIcon(R.drawable.advanced_search_hover);
                    break;
            }
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
            switch (tab.getPosition()) {
                case 0:
                    tab.setIcon(R.drawable.near_me);
                    break;
                case 1:
                    tab.setIcon(R.drawable.all_hostels);
                    break;
                case 2:
                    tab.setIcon(R.drawable.top_five);
                    break;
                case 3:
                    tab.setIcon(R.drawable.advanced_search);

                    break;
            }

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            tabLayout.getTabAt(position).select();
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

共有1个答案

白腾
2023-03-14

tab click侦听器实现了3个方法,其中一个是onTabSelect()put一个布尔条件来检查片断是否初始化。然后,如果满足该条件,则允许事务发生。还要在片段代码之后初始化选项卡

 类似资料:
  • 我已经编辑了文件来设置和日志记录已经停止在Spark-shell中,但它在pyspark中是无情的。 下面的代码在pyspark为我工作。然而,我需要设置它每次我打开pyspark控制台。 我正在寻找此问题的永久解决方案,并希望了解如何pyspark单独拾取默认属性时火花壳不是。我检查了这个线程,但找不到解决方案。

  • 我们如何禁用Chrome的自动填充功能在某些

  • 我使用官方文档和一些教程成功地实现了一个导航抽屉。这很好用。 现在,我添加了一个应用内购买来解锁我的应用的全部功能。此额外功能可通过导航抽屉访问。我有一个布尔值,它根据用户是否进行了此购买,在活动的中获取值。 到目前为止还不错。 现在,如果布尔值是,我不想锁定导航抽屉。什么是好的/正确的方法?我需要在抽屉被切换或影响的所有子片段中添加块吗?有没有我可以方便使用的通用锁? 更新:我尝试使用抽屉布局。

  • 我刚把浏览器升级到Chrome 63.0版。3239.84(正式构建)(64位)。 然后我继续去我的网站,在那里我有一个输入框,但我仍然得到以下内容: (您可以在下面看到我的内置建议下拉列表) 这种情况过去从未发生过。其他一切都没有改变! 为什么会这样?这是新版chrome中的一个bug吗?我也尝试过所有其他建议,如或对表单应用autocomplete=off。我甚至尝试在页面加载后将这些应用于j

  • 尽管该链接已禁用,但它仍然可以点击。 如果它被禁用,我能使它不可点击吗?我一定要用JavaScript吗?

  • 我目前不知道这是如何启用的,但每次我在编辑器中打开一个需要一些参数的文件时,它都会在左侧显示其名称。E、 图中显示的是“值:”。我想禁用它,这样它就不会再显示了。