横向滚动的RecycleView一屏显示五个半,低于五个平均分布
2019-07-18 本文已影响1人
Merbng
场景
项目中有个Icon的模块,要求在不同的手机显示个数相同,如超出屏幕显示则显示半个。
n4.jpg
n5.jpg
n6.jpg
代码
使用的是横向滚动的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.
参考链接: