RecyclerView九宫格分隔线

2024-01-19 05:38

本文主要是介绍RecyclerView九宫格分隔线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

九宫格分隔线,无左右边与最下边线


效果图
public class GridDividerItemDecoration extends RecyclerView.ItemDecoration {private int spanColumnpan;private Drawable mDivider;// spanColumn 是 几列public GridDividerItemDecoration(Context context, int spanColumn) {mDivider = context.getResources().getDrawable(R.drawable.divider_recyclerview);this.spanColumnpan = spanColumn;}@Overridepublic void onDraw(Canvas c, RecyclerView parent) {drawHorizontal(c, parent);drawVertical(c, parent);}public void drawVertical(Canvas c, RecyclerView parent) {int left = parent.getPaddingLeft();int right = parent.getWidth() - parent.getPaddingRight();int childCount = parent.getChildCount();int top = 0;for (int i = 0; i < childCount; i += spanColumnpan) {View child = parent.getChildAt(i);RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();top = child.getBottom() + params.bottomMargin;int bottom = top + mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);mDivider.draw(c);}}public void drawHorizontal(Canvas c, RecyclerView parent) {int top = parent.getPaddingTop();int childCount = parent.getChildCount();int left = 0;int bottom = 0;for (int i = 0; i < childCount; i = i + spanColumnpan) {View child = parent.getChildAt(i);RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();left = child.getRight() + params.rightMargin;bottom = child.getBottom() + params.bottomMargin;top = child.getTop() + params.topMargin;for (int j = 1; j <= spanColumnpan; j++) {int mLeft = left * j;int right = mLeft + mDivider.getIntrinsicHeight();mDivider.setBounds(mLeft, top, right, bottom);mDivider.draw(c);}}}@Overridepublic void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {}}

这篇关于RecyclerView九宫格分隔线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621406

相关文章

RecyclerView的itemView的点击效果

1,需要在 itemView 的布局 根节点上添加  android:clickable="true" 2、或者通过代码实现 @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {  ((ViewHolder)viewHolder).textView

Web前端 lucky-canvas【大转盘 九宫格 老虎机】抽奖插件(适用JS/TS、Vue、React、微信小程序、Uniapp和Taro)

Web前端 lucky-canvas 抽奖插件(JS/TS、Vue、React、微信小程序、Uniapp和Taro) 基于 JS + Canvas 实现的【大转盘 & 九宫格 & 老虎机】抽奖,致力于为 WEB 前端提供一个功能强大且专业可靠的营销组件,只需要通过简单配置即可实现自由化定制,帮助你快速的完成产品需求 自由配置 奖品 / 文字 / 图片 / 颜色 / 按钮均可自由配置;支持同步

ScrollView嵌套RecyclerView再嵌套RecyclerView导致的布局展示不完整问题

背景:页面布局,最外层有个ScrollView,然后里面有个RecyclerView,然后每个RecyclerView的item都是一个RecyclerView 异常:页面展示不完整,最底下的Item 展示一半,在往上滑就滑不动了   解决: // 每一个item渲染完后重新计算外层recyclerview高度// 因为外层的recyclerview是先渲染的,渲染时 内部recyc

【项目FJU】使用SwipeRefreshLayout+RecyclerView制作下拉刷新上拉加载更多

效果截图 https://github.com/ydslib/Jianshu/tree/develop 需要用到的知识 setColorSchemeResources:设置下拉刷新进度条的颜色setOnRefreshListener:设置下拉刷新监听android:overScrollMode:设置滑动到边缘时无效果模式ContentLoadingProgressBar:内容加载进度条,继承

ListView和RecyclerView比较

1.ViewHolder 作用: View复用 Listview: 自己定义 RecyclerView: RecyclerView.ViewHolder则变成了必须 2.LayoutManager 作用: 布局管理器 Listview: 官方推荐只做垂直滚动功能 RecyclerView: LinearLayoutManager,可以支持水平和竖直方向上滚动的列表。 S

RecyclerView和CardView的使用以及注意

转载请注明出处 作者:AboutJoke ( http://blog.csdn.net/u013200308 ) 原文链接:http://blog.csdn.net/u013200308/article/details/51244289 距离RecyclerView和CardView的出现已经很久了,网上也有很多关于这方面的博客。因为最近自己在项目中用到了Material Design设计规

解决ScrollView 嵌套RecyclerView出现的问题

ScrollView 嵌套RecyclerView会使RecyclerView列表显示不全,很多人都把ScrollView替换成NestedScrollView,或者重写RecyclerView。 其实使用ScrollView并且不用重写RecyclerView也是可以实现的,那就是在RecyclerView外面再嵌套一层布局就可以了。像下面这样: <ScrollViewand

使用RecyclerView实现item拖拽变换位置重新排序

小知识解决大问题,问题处理+经验分享,大家好,我是时代新人!今天给大家分享一个小例子,请往下看: 今天用RecyclerView实现一个拖拽交换位置,和编辑删除的功能。先来个效果图看一下 1、定义一个ItemTouchHelperAdapter接口 import androidx.recyclerview.widget.RecyclerView;/*** Created by WJY.*

解决RecyclerView条数显示不全问题

小知识解决大问题,问题处理+经验分享,大家好,我是时代新人!今天给大家分享一条小经验,请往下看: 多个RecyclerView同时使用的时候,比如线性垂直排布三个RecyclerView,那么会出现一个问题就是第一个RecyclerView的数据条数显示不全,只能显示一屏的内容,比如有10条数据,一屏只能显示5条,那么第一个RecyclerView就只显示5条数据,然后就显示下一个Recycle

ScrollView嵌套RecyclerView 问题

在滑动的时候,拦截ScrollView的Touch事件: 自定ScrollView: package com.ejamad.information.ui.widget;import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import androi