public void onClick(View view) { ViewHolderBase viewHolderBase = (ViewHolderBase) view.getTag(); final int oldSelected = mViewPager.getCurrentItem(); final int newSelected = viewHolderBase.getIndex(); mViewPager.setCurrentItem(newSelected); if (oldSelected == newSelected && mTabReselectedListener != null) { mTabReselectedListener.onTabReselected(newSelected); } }
private void updateTab(int item) { final int tabCount = mTabLayout.getChildCount(); for (int i = 0; i < tabCount; i++) { final View child = mTabLayout.getChildAt(i); final ViewHolderBase viewHolderBase = (ViewHolderBase) child.getTag(); final boolean isSelected = (i == item); viewHolderBase.updateView(i, isSelected); if (isSelected) { animateToTab(item); } } }
public void notifyDataSetChanged() { mTabLayout.removeAllViews(); PagerAdapter adapter = mViewPager.getAdapter(); final int count = adapter.getCount(); LayoutInflater layoutInflater = LayoutInflater.from(this.getContext()); for (int i = 0; i < count; i++) { ViewHolderBase viewHolder = mViewHolderCreator.createViewHolder(); viewHolder.setIndex(i); View view = viewHolder.createView(layoutInflater, i); view.setFocusable(true); view.setOnClickListener(mTabClickListener); view.setTag(viewHolder); mTabLayout.addView(view, new LinearLayout.LayoutParams(0, MATCH_PARENT, 1)); } if (mSelectedTabIndex > count) { mSelectedTabIndex = count - 1; } moveToItem(mSelectedTabIndex); requestLayout(); }