直接上核心代码
iRecyclerView = rootView?.findViewById(R.id.strategy_irc) as IRecyclerView
iRecyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
val goods_image_width = orderListBean.goods_image_width
val goods_image_hight = orderListBean.goods_image_hight
val rate = goods_image_width / goods_image_hight
imageView.measure(View.MeasureSpec.makeMeasureSpec(0, 0), View.MeasureSpec.makeMeasureSpec(0, 0))
//val mSuperManWidth = imageView.measuredWidth
var mSuperManWidth = 0
if (imageView.measuredWidth != 0) mSuperManWidth = imageView.measuredWidth else mSuperManWidth = ScreenUtil.getScreenWidth(mActivity) / 2
val realHeight = mSuperManWidth / rate
Glide.with(this@StrategyFragment).load(orderListBean.goods_image).error(R.drawable.default_img).override(mSuperManWidth, realHeight.toInt()).into(imageView)
看见没?上面是RecycleView瀑布流基本用法 而下面则是将后台返回的值根据实际图片高比例,然后结合手机尺寸动态生成的高度。亲测很流畅不卡顿。
就是有个问题当布局滑动时imageView.measuredWidth的值会为0,这里给出了临时的解决方案。极客的我们先实现功能再说呗,至于为什么以后再说。