本文主要讲的是CoordinatorLayout+AppBarLayout的组合使用,绿色的部分代表导航栏
在build.gradle文件中加上这段代码
implementation ‘com.android.support:design:29.0.0’
在xml中布局
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".Main2Activity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@mipmap/ic_launcher"/>
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#ff0">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="100dp"
android:text="sdfisdhcsoihcosdhoshfohfoehfsifihfuehowifeddddddddddwojefowhfhhhhhhhhahfosHIvodsjvodjsi哦吼iH从自己动子发hhhhh"/>
</androidx.core.widget.NestedScrollView>
属性介绍
顶部标题栏中定义的app:layout_scrollFlags属性:
此属性里面必须至少启用scroll这个flag,这样这个View才会滚动出屏幕,否则它将一直固定在顶部。
scroll:所有想滚动出屏幕的view都需要设置这个flag,没有设置这个flag的View将会被固定在屏幕顶部。
enterAlways:当滑动组件向下滚动时,标题栏会直接往下滚动。
enterAlwaysCollapsed:当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩 大到完整高度。
exitUntilCollapsed:当标题栏要往上逐渐“消逝”时,会一直往上滑动,直到剩下的的高度达到它的最小高度,再响应滑动组件的内部滑动事件。
滑动列表中定义的app:layout_behavior属性:
滑动的组件必须要设置此属性,与AppBarLayout配合使用AppBarLayout才会响应滚动事件