AppBarLayout
Проще говоря, AppBarLayout
это LinearLayout
на стероидах, их элементы размещены вертикально, с определенными параметрами элементы могут управлять их поведением, когда содержимое прокручивается
В данном случае AppBarLayout
это синяя view, размещенная под исчезающим изображением, она содержит Toolbar
, LinearLayout
с заголовком и подзаголовком и TabLayout
с несколькими вкладками.
Мы можем управлять поведением элементов AppbarLayout
с помощью параметров: layout_scrollFlags
. Значение: scroll
в данном случае присутствует почти во всех элементах view, если бы этот параметр не был указан ни в одном из элементов AppbarLayout, он остался бы неизменным, позволяя прокручиваемому контенту проходить позади него.
Со значением: snap
, мы избегаем попадания в полу-анимационного-состояния, это значит, что анимация всегда скрывает или отображает полный размер view.
LinearLayout
который содержит заголовок и подзаголовок будет всегда отображен при прокручивании вверх, (enterAlways
значение), и TabLayout
будет видим всегда так как на него не установлен ни один флаг.
Как видите настоящая мощь AppbarLayout
определяется должным управлением его флагами прокрутки в определенных view.
<AppBarLayout> <CollapsingToolbarLayout app:layout_scrollFlags="scroll|snap" /> <Toolbar app:layout_scrollFlags="scroll|snap" /> <LinearLayout android:id="+id/title_container" app:layout_scrollFlags="scroll|enterAlways" /> <TabLayout /> <!-- no flags --></AppBarLayout>
Все эти параметры доступны в документации Google Developers.
Russian source: https://habrahabr.ru/post/270121/