I am working on an app where I want to add tabs so that can be added using PagerTabStrip
and TabLayout
with ViewPager.
It looks same to me with no difference but I guess there is some difference between them so they are two classes for this. So what is the main difference between them?
Just comparing the visuals...
TabLayout
is a material concept that replaced the deprecated ActionBar tabs in Android 5.0.
It extends HorizontalScrollView
, so you can keep adding tabs horizontally which can include text, icons, or custom views and scroll through them linearly without paging.
TabLayout
provides the setupWithViewPager(ViewPager viewPager)
method to attach to a ViewPager
instead of being part of the ViewPager
like the PagerTabStrip
.
A PagerTabStrip
is more of an indictor for the current page of a ViewPager, and "it is intended to be used as a child view of a ViewPager widget". The scrolling for it does not act like the TabLayout
since each tab is part of the page instead of individually horizontally scrollable.
In summary, the differences are (apart from visuals).
- A
TabLayout
is part of the Activity/Fragment, outside of the ViewPager
, and you instead attach it to one. It scrolls separately from the pages.
- A
PagerTabStrip
is a child element of the ViewPager
. The tabs scroll with the page.
From the Developer.android I can say that the TabLayout is the material design concept and as all knows it's new concept than the PagerTabStrip.
You can check the base hierarchy for both
1) TabLayout Hirarchy
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.HorizontalScrollView
↳ android.support.design.widget.TabLayout
2) PagerTabStrip Hirarchy
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.support.v4.view.PagerTitleStrip
↳ android.support.v4.view.PagerTabStrip
For more detail check TabLayout and PagerTabStrip