您的位置:首页 > 移动开发 > Android开发

Android RecyclerView item高度WRAP_CONTENT实现

2017-02-02 15:46 996 查看
先瞅眼==>↓



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里配置,还需要设置最大宽高 这条属性才能生效。

问题解决!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android imageview
相关文章推荐