private void initTabs(int currentTab) {

    for (int index = 0; index < mTabCount; index++) {
      TextView tvTab = new TextView(mContext);
      tvTab.setId(BASE_ID + index);
      tvTab.setOnClickListener(this);
      tvTab.setGravity(Gravity.CENTER);

      if (null != mViewPager.getAdapter().getPageTitle(index)) {
        tvTab.setTextColor(mTextColor);
        tvTab.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSizeNormal);
        tvTab.setText(mViewPager.getAdapter().getPageTitle(index));
      }

      if (mTabIcons != null && mTabIcons.size() > index) {
        StateListDrawable drawable = mTabIcons.get(index);
        drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
        tvTab.setCompoundDrawables(null, drawable, null, null);
        tvTab.setCompoundDrawablePadding(0);
        tvTab.setPadding(0, 10, 0, 0);
      }

      LayoutParams tabLp = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1);
      tabLp.gravity = Gravity.CENTER;
      tvTab.setLayoutParams(tabLp);
      tvTab.setPadding(0, mTabPaddingTop, 0, mTabPaddingBottom);
      this.addView(tvTab);

      if (index == 0) {
        resetTab(tvTab, true);
      }

      if (index != mTabCount - 1 && mHasDivider) {
        LayoutParams dividerLp = new LayoutParams(mDividerWidth, LayoutParams.MATCH_PARENT);
        dividerLp.setMargins(0, mDividerVerticalMargin, 0, mDividerVerticalMargin);
        View vLine = new View(getContext());
        vLine.setBackgroundColor(mDividerColor);
        vLine.setLayoutParams(dividerLp);
        this.addView(vLine);
      }
    }
    setCurrentTab(currentTab);
  }