Разница между PagerTabStrip и TabLayout

Я работаю над приложением, где я хочу добавить вкладки, чтобы их можно было добавить с помощью PagerTabStrip и TabLayout с помощью ViewPager.

Он выглядит так же, как и я, без разницы, но я предполагаю, что между ними существует какая-то разница, поэтому для этого есть два класса. Так в чем же основное отличие между ними?

Ответы

Ответ 1

Просто сравнивая визуальные эффекты...

TabLayout - это материальная концепция, которая заменила устаревшие вкладки ActionBar в Android 5.0.
Он расширяет HorizontalScrollView, поэтому вы можете добавлять горизонтальные вкладки, которые могут включать в себя текст, значки или пользовательские представления, и прокручивать их линейно без подкачки.

TabLayout предоставляет setupWithViewPager(ViewPager viewPager) метод прикрепляться к a ViewPager вместо > часть ViewPager, как PagerTabStrip.

TabLayout

A PagerTabStrip является скорее показателем текущей страницы ViewPager и "он предназначен для использования в качестве дочернего представления виджета ViewPager". Прокрутка для него не действует как TabLayout, так как каждая вкладка является частью страницы, а не индивидуально прокручивается по горизонтали.

PagerTabStrip

Таким образом, различия (кроме визуальных).

  • A TabLayout является частью Activity/Fragment, вне ViewPager, и вместо этого вы прикрепляете его к одному. Он прокручивается отдельно от страниц.
  • A PagerTabStrip является дочерним элементом ViewPager. Вкладки прокручиваются со страницы.

Ответ 2

Из 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