如何强制recyclerview有动态高度改变项目?

时间:2018-04-20 13:20:37

标签: android android-recyclerview linearlayoutmanager

实际上,我尝试使用recyclerview作为viewpagerPagerSnapHelper()类的帮助下正常工作。但现在的问题是如何强制recyclerview动态更改项目高度而不显示空白区域。现在,当我尝试加载两种不同尺寸的可绘制图片时,首先是较小的和较大的图片,较小的图片具有正确的尺寸,但是当我滚动到下一个,然后首先在imageView下方显示一些空白区域。可以看到给定图片中的上述问题。

first image second bigger image white spaced first image

XML:

<android.support.v7.widget.RecyclerView
    android:id="@+id/rView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

Recyclerview项目:

<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/recyclerImgView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
 />
</FrameLayout>

适配器代码

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    Glide.with(ctx).load(pics.get(position)).into(holder.imageView);
}

活动代码:

rView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.HORIZONTAL,false));
    rView.setAdapter(adp);
    SnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(rView);

2 个答案:

答案 0 :(得分:0)

您可以更改图片视图的宽度和高度,如下面的代码..

<ImageView

机器人:ID = “@ + ID / recyclerImgView” 机器人:layout_width = “WRAP_CONTENT” 机器人:layout_height = “WRAP_CONTENT”  /&GT;

和recycleler视图更改高度,如下面的代码..

<android.support.v7.widget.RecyclerView
android:id="@+id/rView"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
/>

将以下依赖项添加到app level gradle文件中,并且给出的大小与下面的所有设备相同..

  implementation 'com.intuit.sdp:sdp-android:1.0.4'

答案 1 :(得分:0)

通过在图片视图中添加scaleType,使用此代码更改您的Recyclerview项目

dateadd(dd,-3,getdate())