场景
项目中有个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
        }
1
2
3
4
5
6
7
8
总结
根据adapter里item的size判断两种情况,低于五个,均分屏幕宽度,减去适量的间距
还有一种方法是当数量为五个时,使用GridLayoutManager.

参考链接:

.横向RecyclerView item修改宽度,均分Android手机屏幕的方法
RecyclerView添加GridLayoutManager布局间隔均分
————————————————
版权声明:本文为CSDN博主「merbng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/merbn/article/details/96447666

03-08 19:40
查看更多