AppBarLayout之layout_scrollFlags属性

1.前言

CoordinatorLayout(协调者布局)。协调child之间的联动。
主要依靠一个插件--Behavior。
在CoordinatorLayout内部,每个child都必须带一个Behavior,中心指挥者就可以根据Behavior来为子View指定依赖的同级View、嵌套滑动、事件拦截。
本文介绍CoordinatorLayout中layout_scrollFlags标签各参数效果。

2. “CoordinatorLayout”具体实现:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/abl_appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <ImageView
            android:id="@+id/iv_header"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:scaleType="centerCrop"
            android:src="@drawable/pic_personal_title"
            app:layout_scrollFlags="noScroll" />

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_material_demo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

3. “更换layout_scrollFlags”属性查看具体表现:

3.1 NoScroll

View保持静止,不随RecyclerView滚动

app:layout_scrollFlags="noScroll"
noscroll.gif
3.2 Scroll

View保持和RecyclerView同步滚动

app:layout_scrollFlags="scroll"
scroll.gif
3.3 scroll_enterAlways

反向滑动。View先出现,然后recycler继续滑动

app:layout_scrollFlags="scroll|enterAlways"
scroll_enterAlways.gif
3.4 scroll_enterAlways_enterAlwaysCollapsed(minHeight)

需要有minHeight属性
反向滑动。View先出现(只出现minHeight高度),然后recycler继续滑动到顶部,才出现View全部高度。
注意:enterAlwaysCollapsed需要配合enterAlways使用。

app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
scroll_enterAlways_enterAlwaysCollapsed(minHeight).gif
3.5 scroll_exitUntilCollapsed(minHeight)

正向滑动,View收起至minHeight高度便不再继续滑动,保持置顶悬挂。

app:layout_scrollFlags="scroll|exitUntilCollapsed"
scroll_exitUntilCollapsed(minHeight).gif
3.6 scroll_snap

随RecyclerView滑动,区别是自带吸附功能。未滑动到指定位置,将自动吸附。

app:layout_scrollFlags="scroll|snap"
scroll_snap.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容