我找到了如何在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("•"));
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会添加到无穷大但是需要切换
在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("•"));
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中有点,这应该工作正常。