Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

TabLayout

public class TabLayout
extends HorizontalScrollView

java.lang.Object
   ↳ HorizontalScrollView
     ↳ com.google.android.material.tabs.TabLayout


TabLayout provides a horizontal layout to display tabs.

Population of the tabs to display is done through TabLayout.Tab instances. You create tabs via newTab(). From there you can change the tab's label or icon via setText(int) and ERROR(/Tab#setIcon(int)) respectively. To display the tab, you need to add it to the layout via one of the addTab(Tab) methods. For example:

 TabLayout tabLayout = ...;
 tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
 
You should set a listener via ERROR(/#setOnTabSelectedListener(OnTabSelectedListener)) to be notified when any tab's selection state has been changed.

You can also add items to TabLayout in your layout through the use of TabItem. An example usage is like so:

 <com.google.android.material.tabs.TabLayout
         android:layout_height="wrap_content"
         android:layout_width="match_parent">

     <com.google.android.material.tabs.TabItem
             android:text="@string/tab_text"/>

     <com.google.android.material.tabs.TabItem
             android:icon="@drawable/ic_android"/>

 </com.google.android.material.tabs.TabLayout>
 

ViewPager integration

If you're using a ERROR(/android.support.v4.view.ViewPager) together with this layout, you can call setupWithViewPager(ViewPager) to link the two together. This layout will be automatically populated from the ERROR(/PagerAdapter)'s page titles.

This view also supports being used as part of a ViewPager's decor, and can be added directly to the ViewPager in a layout resource file like so:

 <android.support.v4.view.ViewPager
     android:layout_width="match_parent"
     android:layout_height="match_parent">

     <com.google.android.material.tabs.TabLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top" />

 </android.support.v4.view.ViewPager>
 

See also:

Summary

Nested classes

interface TabLayout.BaseOnTabSelectedListener<T extends TabLayout.Tab>

Callback interface invoked when a tab's selection state changes. 

interface TabLayout.OnTabSelectedListener

Callback interface invoked when a tab's selection state changes. 

class TabLayout.Tab

A tab in this layout. 

class TabLayout.TabLayoutOnPageChangeListener

A ERROR(/ViewPager.OnPageChangeListener) class which contains the necessary calls back to the provided TabLayout so that the tab position is kept in sync. 

class TabLayout.ViewPagerOnTabSelectedListener

A TabLayout.OnTabSelectedListener class which contains the necessary calls back to the provided ViewPager so that the tab position is kept in sync. 

Constants

int GRAVITY_CENTER

Gravity used to lay out the tabs in the center of the TabLayout.

int GRAVITY_FILL

Gravity used to fill the TabLayout as much as possible.

int INDICATOR_GRAVITY_BOTTOM

Indicator gravity used to align the tab selection indicator to the bottom of the TabLayout.

int INDICATOR_GRAVITY_CENTER

Indicator gravity used to align the tab selection indicator to the center of the TabLayout.

int INDICATOR_GRAVITY_STRETCH

Indicator gravity used to stretch the tab selection indicator across the entire height and width of the TabLayout.

int INDICATOR_GRAVITY_TOP

Indicator gravity used to align the tab selection indicator to the top of the TabLayout.

int MODE_FIXED

Fixed tabs display all tabs concurrently and are best used with content that benefits from quick pivots between tabs.

int MODE_SCROLLABLE

Scrollable tabs display a subset of tabs at any given moment, and can contain longer tab labels and a larger number of tabs.

Public constructors

TabLayout(Context context)
TabLayout(Context context, AttributeSet attrs)
TabLayout(Context context, AttributeSet attrs, int defStyleAttr)

Public methods

void addOnTabSelectedListener(BaseOnTabSelectedListener listener)

Add a TabLayout.OnTabSelectedListener that will be invoked when tab selection changes.

void addTab(TabLayout.Tab tab)

Add a tab to this layout.

void addTab(TabLayout.Tab tab, boolean setSelected)

Add a tab to this layout.

void addTab(TabLayout.Tab tab, int position)

Add a tab to this layout.

void addTab(TabLayout.Tab tab, int position, boolean setSelected)

Add a tab to this layout.

void addView(View child, int index, ViewGroup.LayoutParams params)
void addView(View child, ViewGroup.LayoutParams params)
void addView(View child)
void addView(View child, int index)
void clearOnTabSelectedListeners()

Remove all previously added TabLayout.OnTabSelectedListeners.

LayoutParams generateLayoutParams(AttributeSet attrs)
int getSelectedTabPosition()

Returns the position of the current selected tab.

TabLayout.Tab getTabAt(int index)

Returns the tab at the specified index.

int getTabCount()

Returns the number of tabs currently registered with the action bar.

int getTabGravity()

The current gravity used for laying out tabs.

ColorStateList getTabIconTint()

Gets the icon tint for the different states (normal, selected) used for the tabs.

int getTabIndicatorGravity()

Get the current indicator gravity used to align the tab selection indicator in the TabLayout.

int getTabMode()

Returns the current mode used by this TabLayout.

ColorStateList getTabRippleColor()

Returns the ripple color for this TabLayout.

Drawable getTabSelectedIndicator()

Returns the selection indicator drawable for this TabLayout.

ColorStateList getTabTextColors()

Gets the text colors for the different states (normal, selected) used for the tabs.

boolean hasUnboundedRipple()

Returns whether this TabLayout has an unbounded ripple effect, or if ripple is bound to the tab item size.

boolean isInlineLabel()

Returns whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

boolean isTabIndicatorFullWidth()

Get whether or not selection indicator width is fit to full width of the tab item, or fit to the tab item's content.

TabLayout.Tab newTab()

Create and return a new TabLayout.Tab.

void removeAllTabs()

Remove all tabs from the action bar and deselect the current tab.

void removeOnTabSelectedListener(BaseOnTabSelectedListener listener)

Remove the given TabLayout.OnTabSelectedListener that was previously added via ERROR(/#addOnTabSelectedListener(OnTabSelectedListener)).

void removeTab(TabLayout.Tab tab)

Remove a tab from the layout.

void removeTabAt(int position)

Remove a tab from the layout.

void setInlineLabel(boolean inline)

Set whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

void setInlineLabelResource(int inlineResourceId)

Set whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

void setOnTabSelectedListener(BaseOnTabSelectedListener listener)

This method is deprecated. Use ERROR(/#addOnTabSelectedListener(OnTabSelectedListener)) and ERROR(/#removeOnTabSelectedListener(OnTabSelectedListener)).

void setScrollPosition(int position, float positionOffset, boolean updateSelectedText)

Set the scroll position of the tabs.

void setSelectedTabIndicator(Drawable tabSelectedIndicator)

Sets the selection indicator for this TabLayout.

void setSelectedTabIndicatorColor(int color)

Sets the tab indicator's color for the currently selected tab.

void setSelectedTabIndicatorGravity(int indicatorGravity)

Set the indicator gravity used to align the tab selection indicator in the TabLayout.

void setSelectedTabIndicatorHeight(int height)

Sets the tab indicator's height for the currently selected tab.

void setTabGravity(int gravity)

Set the gravity to use when laying out the tabs.

void setTabIconTint(ColorStateList iconTint)

Sets the icon tint for the different states (normal, selected) used for the tabs.

void setTabIconTintResource(int iconTintResourceId)

Sets the icon tint resource for the different states (normal, selected) used for the tabs.

void setTabIndicatorFullWidth(boolean tabIndicatorFullWidth)

Enable or disable option to fit the tab selection indicator to the full width of the tab item rather than to the tab item's content.

void setTabMode(int mode)

Set the behavior mode for the Tabs in this layout.

void setTabRippleColor(ColorStateList color)

Sets the ripple color for this TabLayout.

void setTabRippleColorResource(int tabRippleColorResourceId)

Sets the ripple color resource for this TabLayout.

void setTabTextColors(int normalColor, int selectedColor)

Sets the text colors for the different states (normal, selected) used for the tabs.

void setTabTextColors(ColorStateList textColor)

Sets the text colors for the different states (normal, selected) used for the tabs.

void setTabsFromPagerAdapter(PagerAdapter adapter)

This method is deprecated. Use setupWithViewPager(ViewPager) to link a TabLayout with a ViewPager together. When that method is used, the TabLayout will be automatically updated when the ERROR(/PagerAdapter) is changed.

void setUnboundedRipple(boolean unboundedRipple)

Set whether this TabLayout will have an unbounded ripple effect or if ripple will be bound to the tab item size.

void setUnboundedRippleResource(int unboundedRippleResourceId)

Set whether this TabLayout will have an unbounded ripple effect or if ripple will be bound to the tab item size.

void setupWithViewPager(ViewPager viewPager, boolean autoRefresh)

The one-stop shop for setting up this TabLayout with a ViewPager.

void setupWithViewPager(ViewPager viewPager)

The one-stop shop for setting up this TabLayout with a ViewPager.

boolean shouldDelayChildPressedState()

Protected methods

TabLayout.Tab createTabFromPool()
void onAttachedToWindow()
void onDetachedFromWindow()
void onDraw(Canvas canvas)
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
boolean releaseFromTabPool(TabLayout.Tab tab)

Inherited methods

From class java.lang.Object

Constants

GRAVITY_CENTER

int GRAVITY_CENTER

Gravity used to lay out the tabs in the center of the TabLayout.

Constant Value: 1 (0x00000001)

GRAVITY_FILL

int GRAVITY_FILL

Gravity used to fill the TabLayout as much as possible. This option only takes effect when used with MODE_FIXED.

Constant Value: 0 (0x00000000)

INDICATOR_GRAVITY_BOTTOM

int INDICATOR_GRAVITY_BOTTOM

Indicator gravity used to align the tab selection indicator to the bottom of the TabLayout. This will only take effect if the indicator height is set via the custom indicator drawable's intrinsic height (preferred), via the tabIndicatorHeight attribute (deprecated), or via setSelectedTabIndicatorHeight(int) (deprecated). Otherwise, the indicator will not be shown. This is the default value.

Constant Value: 0 (0x00000000)

INDICATOR_GRAVITY_CENTER

int INDICATOR_GRAVITY_CENTER

Indicator gravity used to align the tab selection indicator to the center of the TabLayout. This will only take effect if the indicator height is set via the custom indicator drawable's intrinsic height (preferred), via the tabIndicatorHeight attribute (deprecated), or via setSelectedTabIndicatorHeight(int) (deprecated). Otherwise, the indicator will not be shown.

Constant Value: 1 (0x00000001)

INDICATOR_GRAVITY_STRETCH

int INDICATOR_GRAVITY_STRETCH

Indicator gravity used to stretch the tab selection indicator across the entire height and width of the TabLayout. This will disregard tabIndicatorHeight and the indicator drawable's intrinsic height, if set.

Constant Value: 3 (0x00000003)

INDICATOR_GRAVITY_TOP

int INDICATOR_GRAVITY_TOP

Indicator gravity used to align the tab selection indicator to the top of the TabLayout. This will only take effect if the indicator height is set via the custom indicator drawable's intrinsic height (preferred), via the tabIndicatorHeight attribute (deprecated), or via setSelectedTabIndicatorHeight(int) (deprecated). Otherwise, the indicator will not be shown.

Constant Value: 2 (0x00000002)

MODE_FIXED

int MODE_FIXED

Fixed tabs display all tabs concurrently and are best used with content that benefits from quick pivots between tabs. The maximum number of tabs is limited by the view’s width. Fixed tabs have equal width, based on the widest tab label.

Constant Value: 1 (0x00000001)

MODE_SCROLLABLE

int MODE_SCROLLABLE

Scrollable tabs display a subset of tabs at any given moment, and can contain longer tab labels and a larger number of tabs. They are best used for browsing contexts in touch interfaces when users don’t need to directly compare the tab labels.

Constant Value: 0 (0x00000000)

Public constructors

TabLayout

TabLayout (Context context)

Parameters
context Context

TabLayout

TabLayout (Context context, 
                AttributeSet attrs)

Parameters
context Context

attrs AttributeSet

TabLayout

TabLayout (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context

attrs AttributeSet

defStyleAttr int

Public methods

addOnTabSelectedListener

void addOnTabSelectedListener (BaseOnTabSelectedListener listener)

Add a TabLayout.OnTabSelectedListener that will be invoked when tab selection changes.

Components that add a listener should take care to remove it when finished via ERROR(/#removeOnTabSelectedListener(OnTabSelectedListener)).

Parameters
listener BaseOnTabSelectedListener: listener to add

addTab

void addTab (TabLayout.Tab tab)

Add a tab to this layout. The tab will be added at the end of the list. If this is the first tab to be added it will become the selected tab.

Parameters
tab TabLayout.Tab: Tab to add

addTab

void addTab (TabLayout.Tab tab, 
                boolean setSelected)

Add a tab to this layout. The tab will be added at the end of the list.

Parameters
tab TabLayout.Tab: Tab to add

setSelected boolean: True if the added tab should become the selected tab.

addTab

void addTab (TabLayout.Tab tab, 
                int position)

Add a tab to this layout. The tab will be inserted at position. If this is the first tab to be added it will become the selected tab.

Parameters
tab TabLayout.Tab: The tab to add

position int: The new position of the tab

addTab

void addTab (TabLayout.Tab tab, 
                int position, 
                boolean setSelected)

Add a tab to this layout. The tab will be inserted at position.

Parameters
tab TabLayout.Tab: The tab to add

position int: The new position of the tab

setSelected boolean: True if the added tab should become the selected tab.

addView

void addView (View child, 
                int index, 
                ViewGroup.LayoutParams params)

Parameters
child View

index int

params ViewGroup.LayoutParams

addView

void addView (View child, 
                ViewGroup.LayoutParams params)

Parameters
child View

params ViewGroup.LayoutParams

addView

void addView (View child)

Parameters
child View

addView

void addView (View child, 
                int index)

Parameters
child View

index int

clearOnTabSelectedListeners

void clearOnTabSelectedListeners ()

Remove all previously added TabLayout.OnTabSelectedListeners.

generateLayoutParams

LayoutParams generateLayoutParams (AttributeSet attrs)

Parameters
attrs AttributeSet

Returns
LayoutParams

getSelectedTabPosition

int getSelectedTabPosition ()

Returns the position of the current selected tab.

Returns
int selected tab position, or -1 if there isn't a selected tab.

getTabAt

TabLayout.Tab getTabAt (int index)

Returns the tab at the specified index.

Parameters
index int

Returns
TabLayout.Tab

getTabCount

int getTabCount ()

Returns the number of tabs currently registered with the action bar.

Returns
int Tab count

getTabGravity

int getTabGravity ()

The current gravity used for laying out tabs.

Returns
int one of GRAVITY_CENTER or GRAVITY_FILL.

getTabIconTint

ColorStateList getTabIconTint ()

Gets the icon tint for the different states (normal, selected) used for the tabs.

Returns
ColorStateList

getTabIndicatorGravity

int getTabIndicatorGravity ()

Get the current indicator gravity used to align the tab selection indicator in the TabLayout.

Returns
int one of INDICATOR_GRAVITY_BOTTOM, INDICATOR_GRAVITY_CENTER, INDICATOR_GRAVITY_TOP, or INDICATOR_GRAVITY_STRETCH

getTabMode

int getTabMode ()

Returns the current mode used by this TabLayout.

Returns
int

See also:

getTabRippleColor

ColorStateList getTabRippleColor ()

Returns the ripple color for this TabLayout.

Returns
ColorStateList the color (or ColorStateList) used for the ripple

getTabSelectedIndicator

Drawable getTabSelectedIndicator ()

Returns the selection indicator drawable for this TabLayout.

Returns
Drawable The drawable used as the tab selection indicator, if set.

getTabTextColors

ColorStateList getTabTextColors ()

Gets the text colors for the different states (normal, selected) used for the tabs.

Returns
ColorStateList

hasUnboundedRipple

boolean hasUnboundedRipple ()

Returns whether this TabLayout has an unbounded ripple effect, or if ripple is bound to the tab item size.

Returns
boolean

isInlineLabel

boolean isInlineLabel ()

Returns whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

Returns
boolean

isTabIndicatorFullWidth

boolean isTabIndicatorFullWidth ()

Get whether or not selection indicator width is fit to full width of the tab item, or fit to the tab item's content.

Returns
boolean whether or not selection indicator width is fit to the full width of the tab item

newTab

TabLayout.Tab newTab ()

Create and return a new TabLayout.Tab. You need to manually add this using addTab(Tab) or a related method.

Returns
TabLayout.Tab A new Tab

See also:

removeAllTabs

void removeAllTabs ()

Remove all tabs from the action bar and deselect the current tab.

removeOnTabSelectedListener

void removeOnTabSelectedListener (BaseOnTabSelectedListener listener)

Remove the given TabLayout.OnTabSelectedListener that was previously added via ERROR(/#addOnTabSelectedListener(OnTabSelectedListener)).

Parameters
listener BaseOnTabSelectedListener: listener to remove

removeTab

void removeTab (TabLayout.Tab tab)

Remove a tab from the layout. If the removed tab was selected it will be deselected and another tab will be selected if present.

Parameters
tab TabLayout.Tab: The tab to remove

removeTabAt

void removeTabAt (int position)

Remove a tab from the layout. If the removed tab was selected it will be deselected and another tab will be selected if present.

Parameters
position int: Position of the tab to remove

setInlineLabel

void setInlineLabel (boolean inline)

Set whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

Parameters
inline boolean

See also:

setInlineLabelResource

void setInlineLabelResource (int inlineResourceId)

Set whether tab labels will be displayed inline with tab icons, or if they will be displayed underneath tab icons.

Parameters
inlineResourceId int: Resource ID for boolean inline flag

See also:

setOnTabSelectedListener

void setOnTabSelectedListener (BaseOnTabSelectedListener listener)

This method is deprecated.
Use ERROR(/#addOnTabSelectedListener(OnTabSelectedListener)) and ERROR(/#removeOnTabSelectedListener(OnTabSelectedListener)).

Parameters
listener BaseOnTabSelectedListener

setScrollPosition

void setScrollPosition (int position, 
                float positionOffset, 
                boolean updateSelectedText)

Set the scroll position of the tabs. This is useful for when the tabs are being displayed as part of a scrolling container such as ERROR(/android.support.v4.view.ViewPager).

Calling this method does not update the selected tab, it is only used for drawing purposes.

Parameters
position int: current scroll position

positionOffset float: Value from [0, 1) indicating the offset from position.

updateSelectedText boolean: Whether to update the text's selected state.

setSelectedTabIndicator

void setSelectedTabIndicator (Drawable tabSelectedIndicator)

Sets the selection indicator for this TabLayout. By default, this is a line along the bottom of the tab. If tabIndicatorColor is specified via the TabLayout's style or via setSelectedTabIndicatorColor(int) the selection indicator will be tinted that color. Otherwise, it will use the colors specified in the drawable.

Parameters
tabSelectedIndicator Drawable: A drawable to use as the selected tab indicator.

setSelectedTabIndicatorColor

void setSelectedTabIndicatorColor (int color)

Sets the tab indicator's color for the currently selected tab.

Parameters
color int: color to use for the indicator

setSelectedTabIndicatorGravity

void setSelectedTabIndicatorGravity (int indicatorGravity)

Set the indicator gravity used to align the tab selection indicator in the TabLayout. You must set the indicator height via the custom indicator drawable's intrinsic height (preferred), via the tabIndicatorHeight attribute (deprecated), or via setSelectedTabIndicatorHeight(int) (deprecated). Otherwise, the indicator will not be shown unless gravity is set to INDICATOR_GRAVITY_STRETCH, in which case it will ignore indicator height and stretch across the entire height and width of the TabLayout. This defaults to INDICATOR_GRAVITY_BOTTOM if not set.

Parameters
indicatorGravity int: one of INDICATOR_GRAVITY_BOTTOM, INDICATOR_GRAVITY_CENTER, INDICATOR_GRAVITY_TOP, or INDICATOR_GRAVITY_STRETCH

setSelectedTabIndicatorHeight

void setSelectedTabIndicatorHeight (int height)

Sets the tab indicator's height for the currently selected tab. This method is deprecated. If possible, set the intrinsic height directly on a custom indicator drawable passed to setSelectedTabIndicator(Drawable).

Parameters
height int: height to use for the indicator in pixels

setTabGravity

void setTabGravity (int gravity)

Set the gravity to use when laying out the tabs.

Parameters
gravity int: one of GRAVITY_CENTER or GRAVITY_FILL.

setTabIconTint

void setTabIconTint (ColorStateList iconTint)

Sets the icon tint for the different states (normal, selected) used for the tabs.

Parameters
iconTint ColorStateList

See also:

setTabIconTintResource

void setTabIconTintResource (int iconTintResourceId)

Sets the icon tint resource for the different states (normal, selected) used for the tabs.

Parameters
iconTintResourceId int: A color resource to use as icon tint.

See also:

setTabIndicatorFullWidth

void setTabIndicatorFullWidth (boolean tabIndicatorFullWidth)

Enable or disable option to fit the tab selection indicator to the full width of the tab item rather than to the tab item's content.

Defaults to true. If set to false and the tab item has a text label, the selection indicator width will be set to the width of the text label. If the tab item has no text label, but does have an icon, the selection indicator width will be set to the icon. If the tab item has neither of these, or if the calculated width is less than a minimum width value, the selection indicator width will be set to the minimum width value.

Parameters
tabIndicatorFullWidth boolean: Whether or not to fit selection indicator width to full width of the tab item

setTabMode

void setTabMode (int mode)

Set the behavior mode for the Tabs in this layout. The valid input options are:

  • MODE_FIXED: Fixed tabs display all tabs concurrently and are best used with content that benefits from quick pivots between tabs.
  • MODE_SCROLLABLE: Scrollable tabs display a subset of tabs at any given moment, and can contain longer tab labels and a larger number of tabs. They are best used for browsing contexts in touch interfaces when users don’t need to directly compare the tab labels. This mode is commonly used with a ERROR(/android.support.v4.view.ViewPager).

Parameters
mode int: one of MODE_FIXED or MODE_SCROLLABLE.

setTabRippleColor

void setTabRippleColor (ColorStateList color)

Sets the ripple color for this TabLayout.

When running on devices with KitKat or below, we draw this color as a filled overlay rather than a ripple.

Parameters
color ColorStateList: color (or ColorStateList) to use for the ripple

setTabRippleColorResource

void setTabRippleColorResource (int tabRippleColorResourceId)

Sets the ripple color resource for this TabLayout.

When running on devices with KitKat or below, we draw this color as a filled overlay rather than a ripple.

Parameters
tabRippleColorResourceId int: A color resource to use as ripple color.

setTabTextColors

void setTabTextColors (int normalColor, 
                int selectedColor)

Sets the text colors for the different states (normal, selected) used for the tabs.

Parameters
normalColor int

selectedColor int

setTabTextColors

void setTabTextColors (ColorStateList textColor)

Sets the text colors for the different states (normal, selected) used for the tabs.

Parameters
textColor ColorStateList

See also:

setTabsFromPagerAdapter

void setTabsFromPagerAdapter (PagerAdapter adapter)

This method is deprecated.
Use setupWithViewPager(ViewPager) to link a TabLayout with a ViewPager together. When that method is used, the TabLayout will be automatically updated when the ERROR(/PagerAdapter) is changed.

Parameters
adapter PagerAdapter

setUnboundedRipple

void setUnboundedRipple (boolean unboundedRipple)

Set whether this TabLayout will have an unbounded ripple effect or if ripple will be bound to the tab item size.

Defaults to false.

Parameters
unboundedRipple boolean

setUnboundedRippleResource

void setUnboundedRippleResource (int unboundedRippleResourceId)

Set whether this TabLayout will have an unbounded ripple effect or if ripple will be bound to the tab item size. Defaults to false.

Parameters
unboundedRippleResourceId int: Resource ID for boolean unbounded ripple value

setupWithViewPager

void setupWithViewPager (ViewPager viewPager, 
                boolean autoRefresh)

The one-stop shop for setting up this TabLayout with a ViewPager.

This method will link the given ViewPager and this TabLayout together so that changes in one are automatically reflected in the other. This includes scroll state changes and clicks. The tabs displayed in this layout will be populated from the ViewPager adapter's page titles.

If autoRefresh is true, any changes in the ERROR(/PagerAdapter) will trigger this layout to re-populate itself from the adapter's titles.

If the given ViewPager is non-null, it needs to already have a ERROR(/PagerAdapter) set.

Parameters
viewPager ViewPager: the ViewPager to link to, or null to clear any previous link

autoRefresh boolean: whether this layout should refresh its contents if the given ViewPager's content changes

setupWithViewPager

void setupWithViewPager (ViewPager viewPager)

The one-stop shop for setting up this TabLayout with a ViewPager.

This is the same as calling setupWithViewPager(ViewPager, boolean) with auto-refresh enabled.

Parameters
viewPager ViewPager: the ViewPager to link to, or null to clear any previous link

shouldDelayChildPressedState

boolean shouldDelayChildPressedState ()

Returns
boolean

Protected methods

createTabFromPool

TabLayout.Tab createTabFromPool ()

Returns
TabLayout.Tab

onAttachedToWindow

void onAttachedToWindow ()

onDetachedFromWindow

void onDetachedFromWindow ()

onDraw

void onDraw (Canvas canvas)

Parameters
canvas Canvas

onMeasure

void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

Parameters
widthMeasureSpec int

heightMeasureSpec int

releaseFromTabPool

boolean releaseFromTabPool (TabLayout.Tab tab)

Parameters
tab TabLayout.Tab

Returns
boolean