StickyHeaderDecoration
StickyHeaderDecoration copied to clipboard
如果你有好的建议或意见,欢迎在此处吐槽~
想问一下这个GridLayout上部加个addheaderview还能适配
暂时不支持加头尾。
有个问题 我尝试使用GridDecoration 但是貌似他不能兼容多种SpanSize在同一个recyclerView的情况 比如我的某些Item是占满3格 某些只占一格 他都会通通按照构造方法里设置的span进行处理
的确是不能兼容多种SpanSize,因为一开始就要初始化,预留位置。具体可以看我博客http://blog.csdn.net/qian520ao/article/details/76167193 有讲解哦。
if (lookup == null) { lookup = new GridLayoutManager.SpanSizeLookup() {//相当于weight @Override public int getSpanSize(int position) { int returnSpan = 1; int index = headerSpanArray.indexOfKey(position); if (index >= 0) { returnSpan = headerSpanArray.valueAt(headerSpanArray.indexOfKey(position)); //设置itemView PaddingTop的距离 Log.e(TAG, "设置span" + position + "span==" + returnSpan); } return returnSpan; } }; final GridLayoutManager gridLayoutManager = (GridLayoutManager) parent.getLayoutManager(); gridLayoutManager.setSpanSizeLookup(lookup);
spansSize的设置建议放到 recyclerView 设置布局的地方,不然会产生莫名的bug 我遇到的就是,当第一个分组只有一个item时,就会出现item错位。比如要做一些删除操作时。可能spanSize更新会不及时。
GridLayoutManager layoutManager = new GridLayoutManager(mainActivity, 2); layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { int returnSpan = 1; int index = mGridDecor.getHeaderSpanArray().indexOfKey(position); if (index >= 0) { returnSpan = mGridDecor.getHeaderSpanArray().valueAt(index); } return returnSpan; } });
一个建议:加载头部图片能否设置图片加载框架?这样用的是 Glide,动态配置的话比较灵活。