【问题标题】:How get from OnTabSelected tab position, to addDotsIndicator如何从 OnTabSelected 选项卡位置到 addDotsIndicator
【发布时间】:2019-03-28 02:22:36
【问题描述】:

我找到了如何在 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));
        }
    }

如果我正在写这个,那么点指示器会被添加到无穷大,但它们需要切换

【问题讨论】:

    标签: android tabs listener android-tablayout


    【解决方案1】:

    在addDotsIndicator()函数中,可以去掉第一行已经添加的点,然后继续添加。喜欢

            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 中只有点,这应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多