if (linearLayoutManager.getOrientation() == LinearLayoutManager.VERTICAL) {
if (parent.getChildAdapterPosition(view) !=0) {
outRect.top =topBottom;
}
outRect.left =leftRight;
}else {
if (parent.getChildAdapterPosition(view) !=0) {
outRect.left =leftRight;
}
outRect.top =topBottom;
}
}
2、onDraw方法负责在空白区域绘制(该方法绘制的内容在itemview的下方 注意避免过度绘制)代码实现如下
@Override
void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
int left =0;
int right =0;
int top =0;
int bottom =0;
if (mColor ==0 || parent.getChildCount() ==0) {
return;
}
LinearLayoutManager layoutManager = (LinearLayoutManager) parent.getLayoutManager();
if (layoutManager.getOrientation() == LinearLayoutManager.VERTICAL) {
for (int i =0; i < parent.getChildCount(); i++) {
View itemView = parent.getChildAt(i);
left = parent.getLeft() + parent.getPaddingLeft();
right = parent.getRight() - parent.getPaddingRight();
top = itemView.getTop() -topBottom;
bottom = itemView.getTop();
if (parent.getChildAdapterPosition(itemView) !=0) {
c.drawRect(left, top, right, bottom, mPaint);
}
}
}else {
for (int i =0; i < parent.getChildCount(); i++) {
View itemView = parent.getChildAt(i);
left = itemView.getLeft() -leftRight;
right = itemView.getLeft();
top = parent.getTop() + parent.getPaddingTop();
bottom = parent.getBottom() - parent.getPaddingBottom();
if (parent.getChildAdapterPosition(itemView) !=0) {
c.drawRect(left, top, right, bottom, mPaint);
}
}
}
}
二、 实现GridLayoutManager下的ItemDecoration的自定义
@Override
void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
int left;
int top;
int right;
int bottom;
GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
int childCount = layoutManager.getChildCount();
for (int i =0; i < childCount; i++) {
View child = parent.getChildAt(i);
如果你进阶的路上缺乏方向,可以点击我的【Github】加入我们的圈子和安卓开发者们一起学习交流!
以下全部内容都可以在GitHub中获取!
-
Android进阶学习全套手册

-
Android对标阿里P7学习视频

-
BATJ大厂Android高频面试题

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
645005513685)]
-
BATJ大厂Android高频面试题
[外链图片转存中…(img-nNPNgg4W-1645005513685)]
最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
本文介绍了如何在Android项目中使用Kotlin实现RecyclerView的吸顶效果,详细解析了Vertical和GridLayoutManager下的实现方法,并提供了相关代码示例。同时,文章鼓励读者在开发道路上坚持学习,引用了乔布斯的名言激励大家追求内心的声音。
400

被折叠的 条评论
为什么被折叠?



