横向滚动的RecycleView一屏显示五个半,低于五个平均分布

it2022-05-05  146

场景

项目中有个Icon的模块,要求在不同的手机显示个数相同,如超出屏幕显示则显示半个。

代码

使用的是横向滚动的RecycleView,在adapter中写如下代码:

if (data.size <= 5) {//处理居中 val lp = helper?.itemView?.layoutParams lp?.width = (ScreenUtils.getScreenWidth() - DensityUtil.dip2px(mContext, 15f)) / data.size helper?.itemView?.layoutParams = lp } else {//0.7表示显示程度 val lp = LinearLayout.LayoutParams(((mContext.getResources().getDisplayMetrics().widthPixels) / 4.7f).toInt(), ViewGroup.LayoutParams.MATCH_PARENT) helper?.itemView?.layoutParams = lp }

总结

根据adapter里item的size判断两种情况,低于五个,均分屏幕宽度,减去适量的间距 还有一种方法是当数量为五个时,使用GridLayoutManager.

参考链接:

.横向RecyclerView item修改宽度,均分Android手机屏幕的方法RecyclerView添加GridLayoutManager布局间隔均分

最新回复(0)