作为ConsecutiveScroller使用者首先感谢作者提供这个库,但是这个控件有个不能继续使用bug,一直未能没修复,
#80 严重影响了用户体验
虽然评论区我提供了CoordinatorLayout+CollapsingToolbarLayout+AppBarLayout$ScrollingViewBehavior+minHeight(吸顶)解决方案。但是依然不够完美,
首先没有作者这个库ConsecutiveScroller能支持多个吸顶布局。
第二也是非常讨厌的问题在AppBarLayout的视图里面上下滑动,滑动过程会停止一下,这个列表滑动的操作不连续,当然这个问题只有在AppBarLayout的视图非常大的时候才会发现。
我还有一个解决方案就是全部用RecyclerView多布局类型来做,然后重写ItemDecoration来实现吸顶功能,但是这种吸顶使用复杂,还存在视图回收在回来需要重新绑定数据的这种问题。
虽然我不想重复造轮子,但是逼不得已。于是下面这个新的库出现了。
StickyHeaderScrollView是Android下支持吸顶Sticky,滚动布局NestedScrollView嵌套RecyclerView,解决CoordinatorLayout、AppBarLayout快速滑动fling停住卡住回弹抖动等bug。
StickyHeaderScrollView支持NestedScrolling机制。
有网友提问scrollview嵌套recyclerview会影响recyclerview 的item复用么
答案是当然不会啊!recyclerview的高度是动态计算的,不是无限高度。
滚动布局NestedScrollView嵌套RecyclerView
NestedScrollView嵌套ViewPager2
支持SwipeRefreshLayout下拉刷新
动态改变布局不影响吸顶
<?xml version="1.0" encoding="utf-8"?>
<com.kongnan.headerscrollview.HeaderScrollView 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=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.kongnan.headerscrollview.StickyLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- 布局省略 -->
<TextView
android:id="@+id/remove_view"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@android:color/background_dark"
android:text="吸顶View-1"
android:textColor="@color/purple_200"
app:isSticky="true" />
<!-- 布局省略 -->
</com.kongnan.headerscrollview.StickyLinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</com.kongnan.headerscrollview.HeaderScrollView>
就是如此简单,详细使用请看Demo
没有使用协议,两个类HeaderScrollView和StickyLinearLayout拿去随便用。