如果已选择第一个选项卡,如何禁用第三个选项卡?

时间:2017-09-07 08:43:30

标签: java android android-viewpager android-tablayout

我有一个带有viewPager的TabLayout设置。 TabLayout实际上是三个点(就像在一些介绍页面上一样)。 我的目标是在第一个点上禁用第三个点上的可点击。 但是,当我在第二个点时,应该可以移动到第三个点。

我尝试了许多解决方案。 现在我有可能首先从第一个点移动到第三个点。但是在第一次移动之后,禁用从第一个和第二个点移动到第三个点。

您对如何修复代码有任何想法吗? 谢谢。

dotsView.setupWithViewPager(buildTypeViewPager);

    buildTypeViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        public void onPageSelected(int position) {

            switch (position) {
                case 0:
                    if (getmLastPage() == 1 || getmLastPage() == 2) {
                        ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(true);
                        state.moveToPage(position);
                        refreshViewState(false);
                        setmLastPage(position);
                    }
                    else ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(false);

                    break;

                case 1:
                    if (getmLastPage() == 1 || getmLastPage() == 2) {
                        ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(true);
                        state.moveToPage(position);
                        refreshViewState(false);
                        setmLastPage(position);
                    }
                    else ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(false);

                    break;
                case 2:
                    if (getmLastPage() == 1 || getmLastPage() == 2) {
                        ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(false);
                        state.moveToPage(position);
                        refreshViewState(false);
                        setmLastPage(position);
                    } else ((LinearLayout) dotsView.getChildAt(0)).getChildAt(2).setEnabled(true);
                    break;
            }
            }
        });

0 个答案:

没有答案
相关问题