Android之CoordinatorLayout+AppBarLayout顶部折叠栏
我的是androidX
添加依赖
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
与之前不同的是
Recycleview里面的是这个:
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"
大概写个结构:
<com.google.android.material.appbar.AppBarLayout
<com.google.android.material.appbar.AppBarLayout
//这个button可以折叠
<Button app:layout_scrollFlags="scroll|enterAlways">
</com.google.android.material.appbar.AppBarLayout>
//列表
<androidx.recyclerview.widget.RecyclerView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
下面是全部代码,放到一个布局里面就行
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
这个view的子view,有app:layout_scrollFlags="scroll|enterAlways"就可以折叠
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--这个继承了,所以这里面的都会被折叠-->
<LinearLayout
app:layout_scrollFlags="scroll|enterAlways"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical">
<Button
android:text="aaa"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
app:layout_scrollFlags="scroll|enterAlways"
android:text="ccc"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
app:layout_scrollFlags="scroll|enterAlways"
android:text="ddd"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
app:layout_scrollFlags="scroll|enterAlways"
android:text="bbb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<!--这是一个不会动的标题栏-->
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="50dp">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<!--RecyclerView的列表-->
<!--AndroidX要使用:app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"才行-->
<androidx.recyclerview.widget.RecyclerView
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>