Разница между PagerTabStrip и TabLayout
Я работаю над приложением, в которое хочу добавить вкладки, чтобы их можно было добавить с помощью PagerTabStrip
а также TabLayout
с ViewPager.
Это выглядит одинаково для меня без разницы, но я думаю, что есть некоторая разница между ними, поэтому они два класса для этого. Так в чем же главное отличие?
2 ответа
Просто сравнивая визуальные эффекты...
TabLayout
является материальной концепцией, которая заменила устаревшие вкладки ActionBar в Android 5.0.
Расширяется HorizontalScrollView
Таким образом, вы можете продолжать добавлять вкладки по горизонтали, которые могут включать в себя текст, значки или пользовательские представления, и прокручивать их линейно, без подкачки.
TabLayout
обеспечивает setupWithViewPager(ViewPager viewPager)
способ прикрепить к ViewPager
вместо того, чтобы быть частью ViewPager
словно PagerTabStrip
,
PagerTabStrip
это больше индикатор для текущей страницы ViewPager, и "он предназначен для использования в качестве дочернего представления виджета ViewPager". Прокрутка для него не действует как TabLayout
поскольку каждая вкладка является частью страницы, а не индивидуально с горизонтальной прокруткой.
Таким образом, различия есть (кроме визуальных).
-
TabLayout
является частью Деятельности / Фрагмента, внеViewPager
и вместо этого вы прикрепляете его к одному. Прокручивается отдельно от страниц. -
PagerTabStrip
является дочерним элементомViewPager
, Вкладки прокручиваются вместе со страницей.
От Developer.android я могу сказать, что TabLayout является концепцией дизайна материала и, как все знают, это новая концепция, чем PagerTabStrip.
Вы можете проверить базовую иерархию для обоих
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
Для более подробной информации проверьте TabLayout и PagerTabStrip