Giter VIP home page Giter VIP logo

stickydecoration's Introduction

Gavin's GitHub stats

stickydecoration's People

Contributors

gavin-zyx avatar gavin-zyx2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stickydecoration's Issues

自定义分组title时,图片无法加载

你好,我在使用这个框架的时候,使用了自定义的分组头部文件,使用Glide加载图片的时候发现无法显示,无论是加载本地图片还是网络图片都不能,我也花了一段时间去寻找原因,在Glide的监听回调里图片应该是加载完成了的,同时在Glide项目中的其他地方加载图片是没有问题的,作者如果有时间的话,可以帮我解答一下吗

请问在列表数据为空时候和删除列表数据刷新两种情况下会报错

第一种报错:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at android.graphics.Canvas.drawText(Canvas.java:1667)
at com.xiaobu121.xiaobu.xiaobu_android.widgets.stickyDecoration.StickyDecoration.drawDecoration(StickyDecoration.java:100)
at com.xiaobu121.xiaobu.xiaobu_android.widgets.stickyDecoration.StickyDecoration.onDrawOver(StickyDecoration.java:67)

第二种报错:
UncaughtException detected: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at java.util.ArrayList.get(ArrayList.java:413)
at com.xiaobu121.xiaobu.xiaobu_android.ui.fragment.UserStepFragment$1.getGroupName(UserStepFragment.java:121)

很奇怪,作者你写好的控件,就好好维护下么,看看需求。

当我用RecyclePagerAdapter 加载多个页面的布局。滑动好多页,每个页面展示每个班的班级名称和班级的,然后在各个班级中分不同的成绩档(90以上)(80~90).. 这个是我的这组。页面的加载会刷新数据,PowerfulStickyDecoration 的分组,组会被复用多出一条。比如在(90以上)上面多一条透明的和(90以上)分组一样高度的拦。单个页面不会有这个问题,我查是复用的问题。

分页加载抬头就会闪烁一下

大神哥,这个我再做分页加载,然后刷新,抬头就会闪烁一下(看上去就像是分页加载刷新后被顶没了,然后又绘制了):

这是我分页加载的刷新:
mList.addAll(infoFlash);
adapter.notifyDataSetChanged();

添加groupView的时候能不能 match_parent ,否则我自定义的view需要右对齐就不行了

//根据position获取View
View groupView = getGroupView(position);
if (groupView == null) return;
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, mGroupHeight);
groupView.setLayoutParams(layoutParams);
groupView.setDrawingCacheEnabled(true);
groupView.measure(
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
//指定高度、宽度的groupView
groupView.layout(0, 0, right, mGroupHeight);
groupView.buildDrawingCache();
Bitmap bitmap = groupView.getDrawingCache();
int marginLeft = isAlignLeft ? 0 : right - groupView.getMeasuredWidth();
c.drawBitmap(bitmap, left + marginLeft, top - mGroupHeight, null);

使用自定义悬浮头,oppo R15 卡顿明显

使用自定义头的情况下,重写getGroupView 在里面
View view = getLayoutInflater().inflate(R.layout.data_decoration_layout, null, false);

在oppo R15 机型上卡顿明显,其它手机没有卡顿现象,怎么解决?急求

当RecyclerView不宽度不是屏幕宽度时有bug,已提供修改方法

将StickyDecoration中onDrawOver方法中的final int left = parent.getLeft() + parent.getPaddingLeft();
改成final int left = parent.getPaddingLeft(); 按照你的来做,当RecyclerView的宽度小于屏幕宽度时,悬浮栏的左边起点位置就会加上这个parent.getLeft(),导致悬浮栏的宽度小于item的宽度

不支持折叠

无法像ExpandableListView那样,折叠分组,这是一个遗憾,但我依然给你一个star

java.lang.StackOverflowError: stack size 8MB

at com.gavin.com.library.PowerfulStickyDecoration.getGroupName(PowerfulStickyDecoration.java:170)
at com.gavin.com.library.BaseDecoration.isFirstInGroup(BaseDecoration.java:105)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:194)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)
at com.gavin.com.library.BaseDecoration.getFirstInGroup(BaseDecoration.java:197)

NestedScrollView

NestedScrollView嵌套以后 setNestedScrollingEnabled = false 以后 就没什么作用了

StickyDecoration 在相邻的分组且item只有一个的时候 分组没有体现出来

GroupListener groupListener = new GroupListener() {
@OverRide
public String getGroupName(int position) {
if (position == 0 || position == 3 || position == 4){
return "";
}
return null;
}
};

StickyDecoration decoration = StickyDecoration.Builder
        .init(groupListener)
        .setGroupBackground(Color.parseColor("#F1F0F1"))
        .setGroupHeight(ConvertUtils.dp2px(10))
        .build();

position == 3 || position == 4 之间的灰色背景并没有出现 , 只有当相邻分组的item条数只有一条的时候才会有这种情况 ,相邻的分组只要其中一组分组的item条数大于一条就不会有这种情况发生 不知道是不是判断的问题

当Decoration的高度大于item高度时有bug

当Decoration的高度大于Item高度时,在上滑时两个groupView会有重叠部分,重叠部分的高度等于Decoration和Item的高度差,具体代码如下:
if (position + 1 < itemCount) {
//获取下个GroupName
String nextGroupName = getGroupName(position + 1);
//下一组的第一个View接近头部
if (!currentGroupName.equals(nextGroupName) && viewBottom < top) {
top = viewBottom;
}
}

上拉或下拉刷新有问题

如果RecyclerView上面有SmartRefreshLayout用于刷新,则会导致,我下拉刷新后,那个悬浮栏就往下移动一定的距离,同时悬浮栏和顶部有一定距离的白底,再次下拉刷新后,悬浮栏在之前的基础上继续往下移动,白底继续增大,可有解决思路呢?

关于悬浮条内View的点击事件

这个库用recycleView来写城市选择列表很好,可以加上一个自定义的SlideBar就更完美了。不过更多的应用场景是,recycleView复杂布局时,只想让某一条View悬浮,并且需要获取该View内的子View的点击事件,您看看能不能在此基础上回调出悬浮条子View的点击事件!

关于v4包重复的问题 文主是怎么解决的?

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

性能略差

我这里用的公司的测试机
在未使用这个decoration前一切安好,使用后出现明显掉帧的情况

对某个分组notifyItemInserted时,头部会有一瞬间跑到底部然后又恢复正常

我的情况是做一个表格,所以只需要一个头部用于做悬停的表头,但在插入新数据后调用notifyItemInserted时,原本在顶部的表头有一瞬间跑到底部然后又恢复正常回到顶部,改用notifyDataSetChanged便没问题,debug的结果是在notifyItemInserted时,新插入的position跑到了第0位导致对stickyDecoration进行重绘,
image
应该和RecyclerView的notifyItemInserted机制有关,不知作者有没办法兼容

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.