@Override public void onTabReselected(TabLayout.Tab tab) { handleOnTabReselected(tab); } };
@Override public void run() { mAdjustTabModeRunnable = null; adjustTabModeInternal(mTabLayout, prevScrollX1); } };
@Override public void onChanged() { handleOnDataSetChanged(); } };
protected void updateTab(TabLayout.Tab tab) { onUpdateTab(tab); }
/** * Sets auto tab mode adjustment enabled * * @param enabled True for enabled, otherwise false. */ public void setAutoAdjustTabModeEnabled(boolean enabled) { if (mAutoAdjustTabMode == enabled) { return; } mAutoAdjustTabMode = enabled; if (mAutoAdjustTabMode) { adjustTabMode(-1); } else { cancelPendingAdjustTabMode(); } }
protected void handleOnDataSetChanged() { cancelPendingUpdateScrollPosition(); cancelPendingSetTabsFromPagerAdapter(); if (mSetTabsFromPagerAdapterRunnable == null) { mSetTabsFromPagerAdapterRunnable = new Runnable() { @Override public void run() { setTabsFromPagerAdapter(mTabLayout, mViewPager.getAdapter(), mViewPager.getCurrentItem()); } }; } mTabLayout.post(mSetTabsFromPagerAdapterRunnable); }
@Override public void run() { setTabsFromPagerAdapter(mTabLayout, mViewPager.getAdapter(), mViewPager.getCurrentItem()); } };
@Override public void onTabSelected(TabLayout.Tab tab) { handleOnTabSelected(tab); }
@Override public void onTabUnselected(TabLayout.Tab tab) { handleOnTabUnselected(tab); }
protected TabLayout.Tab createNewTab(TabLayout tabLayout, PagerAdapter adapter, int position) { return onCreateTab(tabLayout, adapter, position); }
public static void selectTab(TabLayout tabLayout, TabLayout.Tab tab, boolean updateIndicator) { try { mMethodSelectTab.invoke(tabLayout, tab, updateIndicator); } catch (IllegalAccessException e) { new IllegalStateException(e); } catch (InvocationTargetException e) { throw handleInvocationTargetException(e); } }
@Override public void onAdapterChanged(@NonNull ViewPager viewPager, @Nullable PagerAdapter oldAdapter, @Nullable PagerAdapter newAdapter) { handleOnAdapterChanged(viewPager, oldAdapter, newAdapter); } };
@Override public void onDestroyView() { // release the TabLayoutHelper instance if (mTabLayoutHelper != null) { mTabLayoutHelper.release(); mTabLayoutHelper = null; } super.onDestroyView(); }
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { final TabLayout tabLayout = mTabLayoutRef.get(); if (tabLayout != null) { if (shouldUpdateScrollPosition()) { // Update the scroll position, only update the text selection if we're being // dragged (or we're settling after a drag) final boolean updateText = (mScrollState == ViewPager.SCROLL_STATE_DRAGGING) || (mScrollState == ViewPager.SCROLL_STATE_SETTLING && mPreviousScrollState == ViewPager.SCROLL_STATE_DRAGGING); tabLayout.setScrollPosition(position, positionOffset, updateText); } } }
public void updateAllTabs() { int count = mTabLayout.getTabCount(); for (int i = 0; i < count; i++) { updateTab(mTabLayout.getTabAt(i)); } }
@Override public void onPageSelected(int position) { final TabLayout tabLayout = mTabLayoutRef.get(); if (tabLayout != null && tabLayout.getSelectedTabPosition() != position) { // Select the tab, only updating the indicator if we're not being dragged/settled // (since onPageScrolled will handle that). Internal.selectTab(tabLayout, tabLayout.getTabAt(position), mScrollState == ViewPager.SCROLL_STATE_IDLE); } }
protected void handleOnTabSelected(TabLayout.Tab tab) { if (mDuringSetTabsFromPagerAdapter) { return; } mViewPager.setCurrentItem(tab.getPosition()); cancelPendingUpdateScrollPosition(); }
@Override protected void onUpdateTab(TabLayout.Tab tab) { super.onUpdateTab(tab); int position = tab.getPosition(); View v = tab.getCustomView(); TextView tv = (TextView) v.findViewById(R.id.text); tv.setTextColor(Color.WHITE); tv.setText(tab.getText()); v.setBackgroundColor(getTabColor(position)); }
protected void adjustTabMode(int prevScrollX) { if (mAdjustTabModeRunnable != null) { return; } if (prevScrollX < 0) { prevScrollX = mTabLayout.getScrollX(); } if (ViewCompat.isLaidOut(mTabLayout)) { adjustTabModeInternal(mTabLayout, prevScrollX); } else { final int prevScrollX1 = prevScrollX; mAdjustTabModeRunnable = new Runnable() { @Override public void run() { mAdjustTabModeRunnable = null; adjustTabModeInternal(mTabLayout, prevScrollX1); } }; mTabLayout.post(mAdjustTabModeRunnable); } }
protected void handleOnAdapterChanged(ViewPager viewPager, PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (mViewPager != viewPager) { return; } if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mInternalDataSetObserver); } if (newAdapter != null) { newAdapter.registerDataSetObserver(mInternalDataSetObserver); } setTabsFromPagerAdapter(mTabLayout, newAdapter, mViewPager.getCurrentItem()); }