sticky.gif
思路:
每一个RecyclerView的item的布局(下文叫itemUI)里面都包含“吸顶文本”这个布局(下文叫StickyLayout),根据当前itemA和上一个itemB的吸顶信息是否相同,决定是否展示itemA的StickyLayout.
包含RecyclerView的布局(下文叫wrapperUI)最上部分,有一个假的StickyLayout(下文叫FakeStickyLayout).
监听RecyclerView的滚动,根据RecyclerView的滚动距离,决定FakeStickyLayout向上或者向下滚动的距离.
代码解析
wrapperUI.xml
复制代码
itemUI.xml
~~~~~~~
复制代码
这两个布局没什么特别,重点是
复制代码
这个include标签引用的布局,就是吸顶的那个布局,保证了itemUI中的StickyLayout和wrapperUI中的FakeStickyLayout的布局一致.
再说RecyclerView 的 Adapter:
// RecyclerView 的第一个item,肯定是展示StickyLayout的.
public static final int FIRST_STICKY_VIEW = 1;
// RecyclerView 除了第一个item以外,要