Android

横向滚动的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.

参考链接:

上一篇 下一篇

猜你喜欢

热点阅读