RecyclerView实现悬浮吸顶、分隔线、到底提示效果
本文中所有效果通过ItemDecoration实现,通过此实现的可以与业务解耦,让RecyclerView的模板更加简洁,不关心任何辅助性ui, github地址 一、顶部吸附效果图 二、顶部不吸附效果图 三、不满一屏效果 四、核心实现点 1、为什么通过ItemDecoration能够实现,原理? ①通过getItemOffsets()方法获取当前模板view的left、top、right、bottom边距,这些留出的间距用于绘制这些辅助性ui。 // RecyclerView的measure child方法 public void measureChild(@NonNull View child, int widthUsed, int heightUsed) { final LayoutParams lp = (LayoutParams) child.getLayoutParams(); //将getItemOffsets()获取的值累加到测量值之中 final Rect insets = mRecyclerView.getItemDecorInsetsForChild(child); widthUsed += insets.left + insets.right; heightUsed += insets.top + insets.bottom; final int