如何从OnTabSelected选项卡位置获取addDotsIndicator

问题描述 投票:0回答:1

我找到了如何在Dots Indicator中读取pageSelected,但是如何获取viewPager的onTabSelected位置。

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
                if(tab.getPosition() == 0){
                    addDotsIndicator(0);
                } else if (tab.getPosition() == 1){
                    addDotsIndicator(1);

                } else if (tab.getPosition()== 2){
                    addDotsIndicator(2);
                } else if (tab.getPosition() == 3){
                    addDotsIndicator(3);
                } else if (tab.getPosition()== 4){
                    addDotsIndicator(4);
                } 




     }
    addDotsIndicator(0);


public void addDotsIndicator(int position){
        mDots = new TextView[5];
        for(int i = 0; i<mDots.length; i++){
            mDots[i] = new TextView(this);
            mDots[i].setText(Html.fromHtml("&#8226"));
            mDots[i].setTextSize(50);
            mDots[i].setTextColor(getResources().getColor(R.color.colorTransparentWhite));

            mDotLayout.addView(mDots[i]);
        }
        if (mDots.length > 0){
            mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
        }
    }

如果我正在写这个,那么Dots Indicator会添加到无穷大但是需要切换

android tabs listener android-tablayout
1个回答
0
投票

在add Dots Indicator()函数中,您可以删除第一行中已添加的点,然后继续添加。喜欢

        mDotLayout.removeAllViews() // This right here!

        mDots = new TextView[5];
        for(int i = 0; i<mDots.length; i++){
            mDots[i] = new TextView(this);
            mDots[i].setText(Html.fromHtml("&#8226"));
            mDots[i].setTextSize(50);
            mDots[i].setTextColor(getResources().getColor(R.color.colorTransparentWhite));

            mDotLayout.addView(mDots[i]);
        }
        if (mDots.length > 0){
            mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
        }
    }

如果你只是在mDotLayout中有点,这应该工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.