先瞅眼==>↓
ImageView和item的高度 都是WRAP_CONTENT
闲来没事,准备鼓捣一下RedcyclerView, 话不多说直接进题↓ RecyclerViewm瀑布流网上很多,就不多说了,但是我网上搜索到的item高度全部都是随机数,并没有能够根据item里面的内容 item高度 自适应的,为了拯救处女座,。。。。。。
xml里item的布局里面控件高度全部都是WRAP_CONTENT,包括ImageView。但是实际结果是item的高度为屏幕的高度,WRAP_CONTENT并没有起作用。
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder itemViewHolder = (ViewHolder) holder;
ViewGroup.LayoutParams layoutParams = itemViewHolder.itemView.getLayoutParams();
layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT;
......
在这里设置一下itemView的
layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT 就OK。
item的高度已解决。
在item没有复用的时候,一切正常。但是当复用了item后,ImageView的高度是复用时的高度,新的图片在设置进ImageView时,新图片的高度会根据ImageView的宽高缩放,而不是ImageView的宽高根据图片的宽高缩放,所以这里的ImageView就变成了下面酱紫↓
无法直视。。。
最后找到了一种解决办法,问题出在imageView身上,只需要一句代码:
itemViewHolder.imageView.setAdjustViewBounds(true);
给imageView加上这条属性就好了。这里一定要用代码设置,如果在xml里配置,还需要设置最大宽高 这条属性才能生效。
问题解决!!!